Cron (unix)
De Wikipedia, la enciclopedia libre
En el sistema operativo Unix, cron es un administrador regular de procesos en segundo plano (demonio) que ejecuta programas a intervalos regulares (por ejemplo, cada minuto, día, semana o mes). Los procesos que deben ejecutarse y la hora en la que deben hacerlo se especifican en el archivo crontab
.
Cron se podría definir como el "equivalente" a Tareas Programadas de Windows. Los usuarios habilitados para crear su archivo crontab se especifican en el archivo cron.allow. De manera análoga, los que no lo tienen permitido figuran en /etc/cron.d/cron.deny, o /etc/cron.deny, dependiendo de la versión de unix.
[editar] Formato del archivo crontab
Archivo crontab de ejemplo:
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root nice -n 19 run-parts /etc/cron.hourly 50 0 * * * root nice -n 19 run-parts /etc/cron.daily 22 4 * * 0 root nice -n 19 run-parts /etc/cron.weekly 42 4 1 * * root nice -n 19 run-parts /etc/cron.monthly
Para editar crontab (agregar, quitar o modificar trabajos), hay que ejecutar la orden crontab -e, esto abrirá el editor definido en la variable de entorno EDITOR y cargara el archivo crontab correspondiente al usuario.
[editar] Sintaxis
El formato de configuración de cron es muy sencillo.
- El símbolo Numeral "#" es un comentario, todo lo que se encuentre después de ese carácter no será leído por cron.
- El momento de ejecución se específica de acuerdo con la siguiente tabla:
- Minutos: (0-59)
- Horas: (0-23)
- Días: (1-31)
- Mes: (1-12)
- Día de la semana: (0-6), siendo 1=Lunes, 2=Martes, ... 6=sábado y 0=Domingo
- Para especificar todos los valores posibles de una variable se utiliza un asterisco (*).
- La última columna corresponde al path absoluto del binario o script que se quiere ejecutar.
[editar] Ejemplos
Por ejemplo:
30 10 * * 1 /usr/bin/who >> /home/quien.tex
Ejecuta la orden who todos los lunes a las 10:30 y guarda la salida en el archivo quien.tex
Para especificar dos o más valores en cada variable, estas deben estar separadas por comas, siguiendo con el ejemplo anterior:
0,30 * * * 1 /usr/bin/who >> /home/quien.tex
Ejecuta la orden who todos los lunes cada media hora y guarda la salida en el archivo quien.tex
Si queremos que se ejecute cada 15 minutos sería
0,15,30,45 * * * * /usr/bin/who >> /home/quien.tex
o
*/15 * * * * /usr/bin/who >> /home/quien.tex