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.

Comentarios