La guía para principiantes sobre el uso de Cron para programar tareas en Linux

Cron es un programador robusto que le permite programar scripts o comandos y ejecutarlos de forma regular. Es el latido del corazón que mantiene funcionando varios programas y scripts personalizados. Programa scripts para que se ejecuten en el archivo crontab. Aunque este archivo puede resultar intimidante a primera vista, es algo que puede ser bastante fácil de comprender con un poco de práctica.

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

Ver entradas cron

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

cron-tab-list

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 ver este archivo se mostrará un archivo en blanco o un archivo con comentarios. Para agregar una entrada, deberá abrir su archivo crontab usando el -e opción.

Las entradas de Crontab siempre seguirán la misma sintaxis, lo que le permitirá inspeccionar las entradas en cualquier máquina y 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
  • mon = mes entre 1 y 12
  • dow = día de la semana entre 0 y 6. Cero es domingo.
  • Comando = el comando para ejecutar.

Por ejemplo, debe ejecutar un comando con regularidad para verificar si su servidor mysql está funcionando bien. Para que el comando se ejecute cada hora, use la siguiente sintaxis:

Esto significa que se ejecutará puntualmente a cada hora. Si solo desea que se ejecute a la 1.42 am todos los días, entonces el comando se convierte en:

Además, se pueden utilizar comas para varios elementos (como 1,3,5) y se pueden utilizar guiones para rangos. El uso especial del asterisco en lugar de un elemento en la expresión indica que el elemento se ejecutará para todos los valores del campo. (Un asterisco en el campo de la hora indicaría que se ejecute para 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 inclinada indicará un valor de paso. Por ejemplo, cada cinco minutos se ingresaría como * / 5 (desde el momento en que se guarda el crontab y se crea el trabajo cron). Si usara solo el “5”, la entrada solo se ejecutaría en la marca de cinco minutos.

Para este ejemplo:

  • 34: el minuto para correr entre 0 y 59
  • 3: la 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: el cero final que indica el domingo

Esta tarea se ejecutaría a las 3:34 a.m. todos los meses, todas las semanas los domingos.

Códigos cortos

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

  • @reboot – Ejecutar una vez, al inicio
  • @yearly – Ejecutar una vez al año, “0 0 1 1 *”.
  • @annually – igual que @yearly
  • @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 – igual que @daily
  • @hourly – Ejecutar una vez por hora, “0 * * * *”

Por ejemplo:

Editar entradas cron como otro usuario

Hay ocasiones en las que necesita agregar un crontab como root. Por ejemplo, para renovar el certificado SSL Let’s Encrypt automáticamente, 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 el trabajo cron como otro usuario, utilizando el -u bandera:

Por ejemplo, para ejecutar un trabajo cron como el usuario “www-data”, utilice el siguiente comando:

Revisando la actividad cron

Aunque ahora está configurado para ejecutar comandos o scripts específicos, es posible que desee asegurarse de que se ejecute. Integrado en cron es que una vez que se ejecuta un comando, enviará un correo electrónico al propietario del cron. Esto se puede cambiar con la variable “MAILTO”.

cron-mailto-variable

Añadiendo MAILTO=youremail@yourdomain.com enviará todos los informes de trabajos cron a un correo electrónico específico. Esta variable normalmente se puede encontrar en la parte superior de la pantalla de edición de crontab. Sin embargo, si no está allí, puede agregar la variable y funcionará como se esperaba.

Se pueden separar varias direcciones de correo electrónico con una coma. Si necesita un comando diferente enviado por correo electrónico en otro lugar, puede agregar el comando MAILTO directamente encima del comando. Los comandos posteriores a ese mailto se enviarán por correo electrónico a la nueva dirección. Si te vas MAILTO= en blanco, las notificaciones se enviarán al propietario de la entrada cron.

Alternativamente, puede usar el operador de redireccionamiento (>) para enviar la salida donde se necesite.

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 ejecutó un trabajo y no desea un correo electrónico, también puede verificar los registros cron. En la mayoría de los sistemas, acceder a los registros cron requerirá permisos de superusuario. El registro cron se puede encontrar en “/ var / log”. El archivo cron o syslog mostrará el registro de las entradas cron ejecutadas.

cron-tab-log

Cron se puede restringir aún más para permitir un uso específico y se pueden configurar valores predeterminados. Con la adición de canalización y redirección, las entradas cron se pueden configurar para hacer todo tipo de cosas. En última instancia, cron es una herramienta que le brinda la capacidad de ejecutar tareas en su tiempo libre y para garantizar el mantenimiento de rutina de partes de su sistema según lo desee.

¿Es útil este artículo?

¡Ayúdanos a correr la voz!

Deja una respuesta

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