Cron (unix) - Wikipedia

Cron (unix) - Wikipedia, la enciclopedia libre
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.

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 agregar, quitar o modificar tareas, hay que editar el crontab. Esto se hace con la orden crontab -e, que abrirá el editor definido en la variable de entorno EDITOR y cargará el archivo crontab correspondiente al usuario que está logueado.

Cada vez que se ejecuta el crontab, se envía un mail al usuario que aparece en la variable de entorno MAILTO, si está habilitado, indicándole la tarea realizada.

Sintaxis [editar]

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á ejecutado por cron.

* El momento de ejecución se especifica de acuerdo con la siguiente tabla:

1. Minutos: (0-59)
2. Horas: (0-23)
3. Días: (1-31)
4. Mes: (1-12)
5. 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.

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

En este ejemplo veremos como pasarle mas de un comando al cron y de paso como puede programarse una descarga:

30 21 * * * cd /media/sda7/dexter/distributions/isos;wget http://hola.com/archivo_a_descargar.loquesea

Este otro es para programar el apagado de la PC. En este caso todos los sábados a las 9:30 pm.

30 21 * * 6 /sbin/shutdown -h now

If you enjoyed this post, please consider to leave a comment or subscribe to the feed and get future articles delivered to your feed reader.

Comments

[…] […]

Deje un comentario

(requerido)

(requerido)