Cron es un programa o demonio (daemon) que permite ejecutar otros programas o scripts en un lapso de tiempo y una periodicidad especificada por el usuario. Su comportamiento esta regulado por su archivo de configuración, que se llama crontab. Cada usuario del sistema posee un archivo crontab personalizado y sólo el usuario root puede modificar el archivo crontab de otro usuario. Si se desea agregar un archivo crontab, es necesario entrar ("logearse") primero como ese usuario.
Un usuario sólo puede hacer uso de crontab si su nombre aparece en:
/etc/cron.allow
Si este archivo no existe, el usuario puede usar crontab a menos que su nombre aparezca en:
/etc/cron.deny.
La sintaxis del archivo crontab es muy clara y rígida. Hay seis campos por cada linea, y cada campo está separado por un espacio. Los primeros cinco campos específican el momento preciso de ejecución, mientras que el sexto campo es el propio comando o script que se ejecutará. Los primeros cinco campos son:
* * * * * /commando/a/ejecutar - - - - - | | | | | | | | | +----- día de la semana (0 - 6) (dom = 0) | | | +------- mes (1 - 12) | | +--------- día del mes (1 - 31) | +----------- hora (0 - 23) +------------- minuto (0 - 59)
Para editar el archivo crontab sólo es necesario abrir una consola de comandos y ejecutar el comando:
crontab -e
Si es la primera vez que lo ejecutamos, veremos un archivo vacío en el editor nano (editor de textos en consola de Gnome en Ubuntu). En este caso, si agregamos la siguiente línea al archivo:
45 19 * * * rm /home/NombreDeUsuario/tmp/*
estaremos indicando a cron que el contenido del directorio /home/NombreDeUsuario/tmp/ será borrado todos los días a las 7:45 PM. Si queremos conservar esta instrucción, tendremos que guardar el archivo pulsando la tecla F3, y salir de nano pulsando la tecla F2. Veremos el mensaje:
crontab:installing new crontab
que indica que una nueva tarea ha sido agregada a cron. Si ejecutamos el comando:
crontab -l
empleando la opción -l, veremos las tareas estipuladas en crontab. En este caso sólo veríamos la tarea que acabamos de agregar, pero si nuestro crontab ya tenía tareas programadas también aparecerían.
La opción -r elimina el archivo crontab del usuario, o lo que es lo mismo, todas la tareas programadas en nuestro crontab, así que no se usa muy a menudo, y cuando se usa ha de emplearse con mucha precaución.
Habitualmente, cron envía un e-mail de notificación al usuario propietario de crontab. Esto puede llegar a ser molesto, sobre todo si tenemos un cron que se ejecuta con mucha frecuencia. Para deshabilitar el envio de este e-mail agregaremos lo siguiente al final de cada línea del crontab:
>/dev/null 2>&1
Algunos ejemplos de líneas que podemos añadir a crontab son: