Luzablue

Tecnología y más

Guía para principiantes sobre el uso de Cron para programar trabajos en Linux
Linux

Guía para principiantes sobre el uso de Cron para programar trabajos en Linux

Cron es un programador robusto que le permite programar scripts o comandos y ejecutarlos con regularidad. Es el latido del corazón que le permite personalizar varios programas y scripts. Programe las secuencias de comandos para que se ejecuten en el archivo crontab. Si bien este archivo puede resultar intimidante a primera vista, es algo que se puede entender fácilmente con poca práctica.

En algunas distribuciones de Linux, como Arch Linux, cron no se instala de forma predeterminada porque usa systemd como reemplazo de cron. También hay varias implementaciones cron y cada una tiene su propia forma de editar / programar trabajos cron. En este tutorial, nos centraremos en cron, que es el predeterminado en la mayoría de las distribuciones de Linux, como Ubuntu.

Ver entradas cron

Ver el crontab le permite ver las actividades programadas que se ejecutarán en su cuenta.

También puede ver las tareas programadas para la cuenta raíz usando sudo.

Editar entradas cron

Si nunca ha configurado un trabajo cron, al mostrar este archivo se mostrará un archivo vacío o un archivo de comentarios. Para agregar una entrada, deberá abrir el archivo crontab usando -e opción.

Las entradas de Crontab siempre seguirán la misma sintaxis, lo que le permitirá inspeccionar las entradas en cualquier máquina, así como crearlas mediante programación.

La sintaxis básica de una expresión de entrada crontab es:

  • m = minuto entre 0 y 59
  • h = hora entre 0 y 23
  • d = día del mes entre 1 y 31
  • mes = mes entre 1 y 12
  • dow = día de la semana entre 0 y 6. Cero es domingo.
  • Comando = comando a ejecutar.

Por ejemplo, debe ejecutar un comando periódicamente para verificar que su servidor mysql esté funcionando correctamente. Para que el comando se ejecute a tiempo, utilice la siguiente sintaxis:

Esto significa que se ejecutará puntualmente cada hora. Si solo desea correr a la 1:42 am todos los días, entonces el orden es:

Además, las comas se pueden utilizar para varios elementos (como 1,3,5) y los guiones se pueden utilizar para los intervalos. El uso especial del asterisco en lugar de un elemento en la expresión indica que el elemento se está ejecutando para todos los valores del campo. (Un asterisco en el campo de tiempo indicaría que se ejecuta cada hora de 0 a 23.) Un hashtag (#) en una línea indica un comentario (lo que significa que la línea de código no se ejecutará).

Finalmente, una barra de avance indicará un valor de paso. Por ejemplo, cada cinco minutos se ingresarían como * / 5 (desde el momento en que se guarda la línea de tiempo y se crea el trabajo cron). Si solo usa «5», la entrada solo funcionará durante cinco minutos.

Para este ejemplo:

  • 34: minuto para correr entre 0 y 59
  • 3: hora, entre 0 y 23
  • *: los dos asteriscos del medio indican todos los días (1 a 31) y todos los meses (1 a 12)
  • 0: final cero que indica el domingo

Esta tarea se llevaría a cabo a las 3:34 am cada mes, cada semana los domingos.

Códigos cortos

Crontab le permite usar algunos códigos cortos para facilitar la lectura de las entradas cron.

  • @reboot – Ejecutar una vez al inicio
  • @yearly – Ejecutar una vez al año, «0 0 1 1 *».
  • @annually – Como @anual
  • @monthly – Ejecutar una vez al mes, «0 0 1 * *»
  • @weekly – Ejecutar una vez a la semana, «0 0 * * 0»
  • @daily – Ejecutar una vez al día, «0 0 * * *»
  • @midnight – Como todos los días
  • @hourly – Ejecutar una vez por hora, «0 * * * *»

Por ejemplo:

Edite las entradas cron como un usuario diferente

Hay ocasiones en las que necesita agregar un crontab como root. Por ejemplo, para renovar automáticamente el certificado SSL Let’s Encrypt, debe ejecutar el script de renovación como root. Para editar crontab como root, simplemente agregue un sudo delante del comando:

Del mismo modo, puede programar un trabajo cron como otro usuario, utilizando -u bandera:

Por ejemplo, para ejecutar un trabajo cron como usuario «www-data», use el siguiente comando:

Revisión de la actividad de Chron

Aunque ahora está configurado para ejecutar ciertos comandos o scripts, le recomendamos que se asegure de que se haya ejecutado. El cron incorporado es que una vez que se ejecuta una orden, se enviará por correo electrónico al propietario del cron. Esto se puede cambiar con la variable «MAILTO».

cron-mailto-variable

Él añade MAILTO=youremail@yourdomain.com enviará todos los informes de trabajos cron a un correo electrónico específico. Esta variable generalmente se encuentra en la parte superior de la pantalla de edición de crontab. Sin embargo, si no existe, puede agregar la variable y funcionará como se esperaba.

Varias direcciones de correo electrónico se pueden separar con comas. Si necesita otro pedido enviado por correo electrónico en otro lugar, puede agregar el pedido por CORREO directamente encima del pedido. Los pedidos posteriores a este mailto se enviarán por correo electrónico a la nueva dirección. Si vas a MAILTO= vacío, las notificaciones se enviarán al propietario de la entrada cron.

También puede utilizar el operador de transferencia (>) para enviar la salida si es necesario.

Lo anterior redirigirá la salida a «/ dev / null», que no envía ningún correo electrónico y descarta la salida.

Si desea asegurarse de que se haya ejecutado un trabajo y no desea un correo electrónico, también puede verificar sus registros cron. En la mayoría de los sistemas, acceder a los registros cron requerirá permisos para los superusuarios. El registro cron se encuentra en «/ var / log». El archivo cron o syslog mostrará el registro de las entradas cron ejecutadas.

cron-tab-log

El temporizador se puede limitar aún más para permitir un uso específico y se pueden configurar los ajustes predeterminados. Con la adición de canalizaciones y redireccionamientos, las entradas cron se pueden configurar para hacer todo tipo de cosas. Finalmente, cron es una herramienta que le brinda la flexibilidad de ejecutar tareas en su tiempo libre y realizar el mantenimiento de rutina de partes de su sistema como desee.

DEJA UNA RESPUESTA

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *