Cómo crear y administrar trabajos de Cron en Linux


Cron es una de las herramientas más útiles de Linux y una de las favoritas de los desarrolladores, ya que le permite ejecutar comandos automatizados en períodos, fechas e intervalos específicos utilizando scripts de propósito general y específicos de tareas. Dada la descripción, puede imaginar cómo los administradores del sistema lo utilizan para automatizar tareas de copia de seguridad, limpieza de directorios, notificaciones, etc.

Los trabajos Cron se ejecutan en segundo plano y comprueban constantemente el archivo /etc/crontab y el /etc/cron.*/ y /var/spool/cron/ directorios. Los archivos cron no deben editarse directamente y cada usuario tiene un crontab único.

¿Cómo entonces se supone que debes crear y editar trabajos cron? Con los comandos crontab. El crontab es el método que utiliza para crear, editar, instalar, desinstalar y enumerar los trabajos cron.

El comando para crear y editar trabajos cron es el mismo y simple. Y lo que es aún más interesante es que no es necesario reiniciar cron después de crear nuevos archivos o editar los existentes.

$ crontab -e

Sintaxis de Cron

Al igual que con cualquier idioma, trabajar con cron es mucho más fácil cuando entiendes su sintaxis y hay 2 formatos que debes saber

A B C D E USERNAME /path/to/command arg1 arg2
OR
A B C D E USERNAME /root/backup.sh

Explicación de la sintaxis cron anterior:

  • A: Minutes range: 0 – 59
  • B: Hours range: 0 – 23
  • C: Days range: 0 – 31
  • D: Months range: 0 – 12
  • E: Days of the week range: 0 – 7. Starting from Monday, 0 or 7 represents Sunday
  • USERNAME: replace this with your username
  • /path/to/command – The name of the script or command you want to schedule

Eso no es todo. Cron utiliza 3 símbolos de operador que le permiten especificar múltiples valores en un campo:

  1. Asterisk (*): specifies all possible values for a field
  2. The comma (,): specifies a list of values
  3. Dash (-): specifies a range of values
  4. Separator (/): specifies a step value

Ahora que conoce la sintaxis y los operadores de Cron, veamos algunos ejemplos cron.

Ejemplos de trabajo Cron

El primer paso para ejecutar los comandos cron es instalar su crontab con el comando:

# crontab -e

Ejecute /root/backup.sh a 3 am todos los días:

0 3 * * * /root/backup.sh

Ejecute script.sh a 4:30 pm el segundo de cada mes:

30 16 2 * * /path/to/script.sh

Ejecute /scripts/phpscript.php en 10 pm durante la semana:

0 22 * * 1-5 /scripts/phpscript.php

Ejecute perlscript.pl a 23 minutos después de la medianoche, de 2:00 a 4:00, todos los días:

23 0-23/2 * * * /path/to/perlscript.pl

Ejecuta el comando de Linux a las 04:05 cada domingo:

5 4 * * sun /path/to/linuxcommand

Opciones de Cron

Listar trabajos cron.

# crontab -l
OR
# crontab -u username -l

Eliminar todos los trabajos de crontab.

# crontab -r

Eliminar trabajo de Cron para un usuario específico.

# crontab -r -u username

Cuerdas en Crontab

Las cadenas están entre las cosas favoritas del desarrollador porque ayudan a ahorrar tiempo al eliminar la escritura repetitiva. Cron tiene cadenas específicas que puedes usar para crear comandos más rápido:

  1. @hourly: Run once every hour i.e. “0 * * * *
  2. @midnight: Run once every day i.e. “0 0 * * *
  3. @daily: same as midnight
  4. @weekly: Run once every week, i.e. “0 0 * * 0
  5. @monthly: Run once every month i.e. “0 0 1 * *
  6. @annually: Run once every year i.e. “0 0 1 1 *
  7. @yearly: same as @annually
  8. @reboot: Run once at every startup

Por ejemplo, esta es la forma de hacer una copia de seguridad de su sistema todos los días:

@daily /path/to/backup/script.sh

En este punto, tiene todo lo que necesita para crear y administrar las tareas del sistema usando Cron . Ahora puede comenzar a configurar y mantener varios entornos utilizando comandos programados.

¿Cuánto de un usuario Cron eres? ¿Y hay algún detalle que puedas aportar al artículo? El cuadro de discusión está abajo.

Cuando entienda lo suficiente sobre cómo funciona Crontab, puede usar estas ingeniosas utilidades de generador de Crontab para generar líneas de crontab de forma gratuita.

Además, puedes leer el artículo de Ubuntu sobre cómo usar Cron aquí. Tiene recursos que te pueden resultar útiles.