En sistemas basados en Unix, tenemos un servicio llamado Cron que permite la programación de eventos repetidos. Funciona con ayuda de una tabla llamada crontab. Es un archivo de texto que se puede editar con un simple editor, como por ejemplo vi o nano. Para modificar el crontab personal del usuario, se puede utilizar el comando crontab para editar la tabla con el parámetro -e. Los archivos de crontab se guardan en /var/spool/cron.

El servicio Cron tiene que estar ejecutándose para que las crontabs estén activas:

ps -ef | grep cron
root 1003 1 0 15:04 ? 00:00:00 /usr/sbin/cron -f

Formatos

El formato de los registros de las crontabs debe de ser el siguiente:

Minutos Horas Día del mes Mes Día de la semana Comando

Es importante utilizar este formato para los valores periódicos:

  • Un valor para indicar cuándo se debe de ejecutar el comando -por ejemplo, el valor 15 en el campo de minutos significa el decimoquinto minuto-.
  • Una lista de valores separados por comas -por ejemplo, 1,4,7 en el campo del mes para indicar enero, abril y julio-.
  • Un intervalo de valores -por ejemplo, 1-5 en el campo del día de la semana para indicar de lunes (1) a viernes (5)-. El 0 es domingo y el 6 es sábado.
  • El carácter * significa todos los valores posibles -por ejemplo, * en el campo de mes significa todos los meses-.
  • Una / indica un intervalo -por ejemplo, */5 significa cada 5 minutos-.

Ejemplos de tablas

Ejecución de df todos los días, todo el año, cada cuarto de hora:

*/15 * * * * df > /tmp/libre

Ejecución de un comando todos los días laborables a las 17h:

0 17 * * 1-5 fin_trabajo.sh

Comandos interesantes

Si queremos listar las crontabs activas deberemos de ejecutar lo siguiente:

crontab -l

Si queremos eliminar la contrab activa:

crontab -r

Si queremos editar la crontab de un usuario particular:

crontab -u usuario

Para principiantes

Puede resultar al principio, que la sintaxis que usa Cron es algo rara o que cuesta comprender como funciona al principio. Es pos eso que quiero añadir esta parte para compartir con vosotros una web que seguramente os pueda ayudar más a entender Cron. La web se llama Crontab.guru y si estáis empezando con Cron será vuestra mayor amiga. Esta web permite poner un registro con la sintaxis de Cron y te lo transforma en lenguaje «humano» para que puedas entenderlo mejor. Además, lo interesante, es que también puedes ver los futuros Crons que se ejecutaran. Algo que sirve para saber si el registro que has puesto es el correcto.

Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación