Instituto FOC – FP Informática Online

Programador de procesos de Linux (CRON)

El nombre Cron proviene del griego chronos, que significa “tiempo” y es un programador de procesos, equivalente a “Tareas Programadas” de Windows.

El servicio o demonio crond es el encargado periódicamente de ejecutar los trabajos almacenados en cada linea del archivo de configuración llamado crontab. Este archivo está ubicado en la carpeta /var/spool/cron/crontabs y se guardan a nivel de usuario, encontrándonos allí todos los archivos crontabs de cada usuario del sistema.

Para acceder a esos archivos no es necesario entrar en la carpeta, basta con ejecutar el comando crontab –e  y en el caso de no existir, nos creará un archivo de configuración para el usuario que lanza este comando.

Para añadir una nueva tarea tenemos que agregar una línea siguiendo el siguiente patrón (resaltado en color verde):

En el cual, en cada * puedes añadir un número (o tres letras en el caso de mes, día) que indica el minuto, hora, día del mes, mes, y día de la semana específico en la que se va a ejecutar una tarea programada o comando.

Se puede emplear el asterisco * para indicar que es a todas, pudiendo así especificar no una hora o día en concreto, sino a todas añadiendo así cierta periodicidad.

Si indicamos 0 0 1 1 * estaremos indicando que se ejecute en el minuto 0, hora 0, día 1, mes 1 y en cualquier dia de la semana (en resumen, una vez al año)

Si indicamos 0 * * * * estaremos indicando que se ejecute en el minuto 0, en todas las horas, en todos los días, en todos los meses y en cualquier día de la semana (en resumen, cada hora se ejecuta una vez nuestra tarea programada)

En el comando o tarea a realizar podemos lanzar cualquier comando de consola de linux, o que éste ejecute un script (un listado de comandos)

Por ejemplo 0 22 * * 6 /sbin/shutdown -h now estaríamos indicando que en el minuto 0, hora 22, en todos los días, en todos los meses y en sábado se apague nuestro ordenador.