miércoles, 4 de diciembre de 2013

Tareas Programadas por Linux



Tareas programadas
Muchas veces uno tiene que hacer backups, mantener sincronizados dos o más directorios (carpetas)
recibir mensajes popup de la propia máquina, etc, y no hace falta decir que si se hace de forma
automática nos ahorramos varios minutos, olvidos, dolores de cabeza, etc, en Linux hay varias
formas de tener tareas programadas/automáticas. El archivo crontab situado dentro de la carpeta /etc controla las tareas automáticas de todo el
sistema, para el resto de los usuarios habrá que buscar en /var/spool/cron/crontabs, donde el
archivo tiene el mismo nombre que el usuario, por ej.: /var/spool/cron/crontabs/abel, pero en
general no está orientado a editarse en forma directa.
El archivo crontab mostrado en la imagen es el mismo que se puede encontrar en casi cualquier
distro (salvo las últimas 3 líneas que le agregué), aunque a simple vista se ve algo intimidante
su edición es más fácil de lo que aparenta, ya que:
* va una tarea por línea
* cada linea tiene campos que se separan con uno o más espacios (excepto el último que es la tarea
a realizar)
los campos son los siguientes:
Campo : Rango/valor permitido
minuto : 0 a 59
hora : 0 a 23
dia del mes : 1 a 31
mes : 1 a 12 (o por nombre en inglés)
dia de la semana : 0 a 7, donde 0 y 7 es domingo (o por nombre en inglés)
tarea : comando o script tal como lo ejecutaría desde la consola
se pueden agregar valores adicionales a cada campo separándolos por comas y sin espacios
por ej si quiero ejecutar un backup a las 3:05 de la mañana y a las 13:05 todos los días
como usuario root:
5 3,13 * * * root backup.sh
Ahora si quiero hacer este backup de lunes a viernes justo al mediodía:
0 12 * * 1-5 root backup.sh
aquí hay algo nuevo: el 1-5, aquí se especificó un rango de valores, ya que es mas corto que
poner 1,2,3,4,5
También puedo querer hacerlo cada 2 horas:
*/2 0 * * * root backup.sh
acá hay otra cosa nueva: */2, significa justamente "a cualquier hora cada dos horas", el
demonio cron tomará como referencia el momento en que se leyó el cambio (el cron lee el archivo
de configuración una vez por minuto en busca de cambios)
TIP: luego de escribir la tarea se debería agregar el parámetro > /dev/null 2>&1 más adelante
explicaré el motivo
Esto fue lo básico para jugar con la programación de tareas, si sos insaciable, en las páginas del
manual (escribiendo man 5 crontab desde la consola) vas a tener bastante

No hay comentarios:

Publicar un comentario