Tabla de Contenidos

cron

Administrador de procesos en segundo plano que ejecuta programas o scripts a intervalos regulares.

Los procesos que deben ejecutarse y la hora a la que deben hacerlo se especifican en el archivo crontab.

El nombre cron proviene del griego chronos (χρόνος) que significa tiempo.

Cron se puede definir como el equivalente a Tareas Programadas de Windows.

crontab

crontab es el fichero que contiene la programación del cron, es decir, donde se define cuándo se ejecutarán los programas o scripts.

Estructura:

.--------------- minuto (0-59) 
|  .------------ hora (0-23)
|  |  .--------- día del mes (1-31)
|  |  |  .------ mes (1-12) o jan,feb,mar,apr,may,jun,jul... (meses en inglés)
|  |  |  |  .--- día de la semana (0-6) (domingo=0 ó 7) o sun,mon,tue,wed,thu,fri,sat (días en inglés) 
|  |  |  |  |
*  *  *  *  *  comando a ejecutar

Ejemplo:

1 0 * * *  echo -n "" > /www/apache/logs/error_log

La configuración anterior está diciendo a cron que se vacíe el fichero /www/apache/logs/error_log a las 00:01 diariamente.

Otro ejemplo:

*/5 * * * *  /home/user/test.pl

El script /home/user/test.pl se ejecutará cada 5 minutos.

Es posible indicar más de un comando si lo separamos por punto y coma (;):

30 21 * * * cd /media/linux/isos;wget http://example.com/archivo.loquesea

Horarios predefinidos

Hay varios valores predefinidos que se pueden utilizar para sustituir una expresión del cron:

Entrada Descripción Equivale A
@yearly Se ejecuta una vez al año 0 0 1 1 *
@annually (igual que @yearly) 0 0 1 1 *
@monthly Se ejecuta una vez al mes 0 0 1 * *
@weekly Se ejecuta una vez a la semana 0 0 * * 0
@daily Se ejecuta una vez al día 0 0 * * *
@midnight (igual que @daily) 0 0 * * *
@hourly Se ejecuta una vez cada hora 0 * * * *

Por ejemplo, si vamos a ejecutar algo cada hora, tendríamos dos opciones:

0 * * * * comando

O utilizando el valor predefinido @hourly:

@hourly comando

Recursos