Cómo crear y gestionar trabajos cron en Linux

Cron es una de las herramientas más útiles de Linux y favorita de los desarrolladores porque te permite ejecutar comandos automatizados en períodos específicos, fechas e intervalos utilizando scripts tanto de propósito general como específicos de tareas. Dada esa descripción, puedes imaginar cómo los administradores del sistema lo utilizan para automatizar tareas de respaldo, limpieza de directorios, notificaciones, etc.

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

Entonces, ¿cómo se supone que debes crear y editar trabajos de cron? Con comandos de crontab. El crontab es el método que utilizas para crear, editar, instalar, desinstalar y listar trabajos de cron.

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

$ crontab -e

Sintaxis de Cron

Al igual que con cualquier lenguaje, trabajar con cron es mucho más fácil cuando comprendes su sintaxis y hay 2 formatos que deberías conocer:

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 de 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
  • NOMBREDEUSUARIO: reemplázalo con tu nombre de usuario
  • /ruta/al/comando – El nombre del script o comando que deseas programar

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

  1. Asterisco (*): especifica todos los valores posibles para un campo
  2. La coma (,): especifica una lista de valores
  3. Guion (-): especifica un rango de valores
  4. Separador (/): especifica un valor de paso

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

Ejemplos de Tareas Cron

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

# crontab -e

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

0 3 * * * /root/backup.sh

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

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

Ejecutar /scripts/phpscript.php a las 10 pm durante la semana:

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

Ejecutar perlscript.pl a los 23 minutos después de la medianoche, a las 2 am y a las 4 am, todos los días:

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

Ejecutar comando de Linux a las 04:05 todos los domingos:

5 4 * * sun /path/to/linuxcommand

Opciones de Cron

Listar tareas cron.

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

Eliminar todos los trabajos de crontab.

# crontab -r

Eliminar trabajo Cron para un usuario específico.

# crontab -r -u username

Cadenas en Crontab

Las cadenas son una de las cosas favoritas de los desarrolladores porque ayudan a ahorrar tiempo al eliminar la escritura repetitiva. Cron tiene cadenas específicas que puedes usar para crear comandos más rápidamente:

  1. @hourly: Se ejecuta una vez cada hora, es decir, “0 * * * *
  2. @midnight: Se ejecuta una vez al día, es decir, “0 0 * * *
  3. @daily: lo mismo que medianoche
  4. @weekly: Se ejecuta una vez a la semana, es decir, “0 0 * * 0
  5. @monthly: Se ejecuta una vez al mes, es decir, “0 0 1 * *
  6. @annually: Se ejecuta una vez al año, es decir, “0 0 1 1 *
  7. @yearly: lo mismo que @annually
  8. @reboot: Se ejecuta una vez en cada inicio

Por ejemplo, así es como hacer una copia de seguridad de tu sistema todos los días:

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

En este punto, tienes todo lo que necesitas para crear y gestionar tareas del sistema usando Cron. Ahora puedes comenzar a configurar y mantener varios entornos usando comandos programados.

¿Qué tan seguido usas Cron? ¿Y hay algún detalle que puedas contribuir al artículo? La caja de discusión está abajo.

Cuando entiendas lo suficiente sobre cómo funciona Crontab, puedes usar estas prácticas utilidades generadoras de Crontab para generar líneas de crontab de forma gratuita.

También, puedes leer el artículo de Ubuntu sobre cómo usar Cron aquí. Tiene recursos que podrían serte útiles.

Source:
https://www.tecmint.com/create-and-manage-cron-jobs-on-linux/