lunes, 5 de agosto de 2013

Programar eventos en Crontab

 

Sintaxis

El formato de configuración de cron es muy sencillo.
  • El símbolo almohadilla «#» 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 (a veces también 7=domingo)
##########################################################
#minuto (0-59),                                          #
#|  hora (0-23),                                         #
#|  |  día del mes (1-31),                               #
#|  |  |  mes (1-12),                                    #
#|  |  |  |  día de la semana (0-6 donde 0=Domingo)      #
#|  |  |  |  |       comandos                            #
##########################################################
15 02  *  *  *
Para especificar todos los valores posibles de una variable se utiliza un asterisco (*).
  • La última columna corresponde a la ruta absoluta 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 fichero 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 fichero 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 más de un comando al cron y de paso como puede programarse una descarga:
30 21 * * * cd /media/sda7/dexter/distributions/isos;wget http://example.com/fichero_a_descargar.loquesea
Este otro es para programar el apagado del PC. En este caso todos los sábados a las 21.30
30 21 * * 6 /sbin/shutdown -h now
Editar crontab de un usuario en particular
crontab [ -u usuario ] fichero
crontab [ -u usuario ] { -l | -r | -e }
La opción -u se utiliza para indicar el crontab de usuario que queremos administrar. Sólo root podrá usar la orden crontab con esta opción.
La opción -e se utiliza para editarlo

Fuente: http://es.wikipedia.org/wiki/Cron_(Unix)

Tarea de limpieza de RAM cada 15 minutos:

0 * * * * echo 3 > /proc/sys/vm/drop_caches
15 * * * * echo 3 > /proc/sys/vm/drop_caches
30 * * * * echo 3 > /proc/sys/vm/drop_caches
45 * * * * echo 3 > /proc/sys/vm/drop_caches