21
Automatizacion de Tareas Crond/Anacron Es el servicio que ejecuta las tareas Crontab Permite manipular la tabla de tareas

Automatizacion de Tareas Crond/Anacron Es el servicio que ejecuta las tareas Crontab Permite manipular la tabla de tareas

Embed Size (px)

Citation preview

Page 1: Automatizacion de Tareas Crond/Anacron Es el servicio que ejecuta las tareas Crontab Permite manipular la tabla de tareas

Automatizacion de Tareas

Crond/Anacron Es el servicio que ejecuta las tareas

Crontab Permite manipular la tabla de tareas

Page 2: Automatizacion de Tareas Crond/Anacron Es el servicio que ejecuta las tareas Crontab Permite manipular la tabla de tareas

Comando 'crontab'Ver o editar las tablas de tareas

Uso:crontab [opciones]

e Edita interactivamente (por defecto, con 'vi')

l Muestra el contenido de la tabla

r Elimina la tabla

u x Opera sobre la tabla del usuario 'x'

Page 3: Automatizacion de Tareas Crond/Anacron Es el servicio que ejecuta las tareas Crontab Permite manipular la tabla de tareas

Configuración de crond

/etc/crontab/etc/cron.d/etc/cron.hourly/etc/cron.daily/etc/cron.weekly/etc/cron.montly/var/spool/cron/

Page 4: Automatizacion de Tareas Crond/Anacron Es el servicio que ejecuta las tareas Crontab Permite manipular la tabla de tareas

Archivo /etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/

# run-parts01 * * * * root run-parts /etc/cron.hourly02 4 * * * root run-parts /etc/cron.daily22 4 * * 0 root run-parts /etc/cron.weekly42 4 1 * * root run-parts /etc/cron.monthly

Page 5: Automatizacion de Tareas Crond/Anacron Es el servicio que ejecuta las tareas Crontab Permite manipular la tabla de tareas

Ejemplo /etc/cron.daily/logrotate

#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.confEXITVALUE=$?if [ $EXITVALUE != 0 ]; then /usr/bin/logger -t logrotate "ALERT

exited abnormally with [$EXITVALUE]"fiexit 0

Page 6: Automatizacion de Tareas Crond/Anacron Es el servicio que ejecuta las tareas Crontab Permite manipular la tabla de tareas

# Ejemplo de definición:# .---------------- minuto (0 - 59)# | .------------- hora (0 - 23)# | | .---------- día del mes (1 - 31)# | | | .------- mes (1 - 12) OR

jan,feb,mar,apr ...# | | | | .---- día de la semana (0 - 6)

(Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# | | | | |# * * * * * comando a ejecutar

Page 7: Automatizacion de Tareas Crond/Anacron Es el servicio que ejecuta las tareas Crontab Permite manipular la tabla de tareas

Mi Primer Crontab

Crontab -e

40 2 * * * echo $(date +%H:%m) >> /tmp/test

Page 8: Automatizacion de Tareas Crond/Anacron Es el servicio que ejecuta las tareas Crontab Permite manipular la tabla de tareas

Ejemplos I

Ejecutar una tarea cada 5 minutos*/5 * * * * /home/crond1/backup.sh

Ejecutar una tarea cada 5 horas0 */5 * * * /home/crond1/backup.sh

Ejecutar una tarea cada día 5 de la semana0 0 * * Fri /home/crond1/backup.sh

Ejecutar una tarea cada 5 meses0 0 1 May,Oct * /home/crond1/backup.sh

Page 9: Automatizacion de Tareas Crond/Anacron Es el servicio que ejecuta las tareas Crontab Permite manipular la tabla de tareas

Ejemplos IIEjecutar una tarea específica en un día

30 08 10 06 * /home/crond1/full-backup

Ejecutar una misma tarea dos veces en el día00 11,16 * * * /home/crond1/bin/incremental-

backup

Ejecutar una tarea en un rango específico de tiempo00 09-18 * * 1-5 /home/crond1/bin/check-db-

status

Page 10: Automatizacion de Tareas Crond/Anacron Es el servicio que ejecuta las tareas Crontab Permite manipular la tabla de tareas

Anacron Anacron es el cron para equipos de escritorio y portátiles.

Anacron no espera que el sistema se ejecute 24 x 7, como un servidor

Para tareas que no requieran servicio 24x7

Page 11: Automatizacion de Tareas Crond/Anacron Es el servicio que ejecuta las tareas Crontab Permite manipular la tabla de tareas

ConfiguracionSHELL=/bin/shPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=root# the maximal random delay added to the base delay of the jobsRANDOM_DELAY=45# the jobs will be started during the following hours onlySTART_HOURS_RANGE=3-22

#period in days delay in minutes job-identifier command1 5 cron.daily nice run-parts /etc/cron.daily7 25 cron.weekly nice run-parts /etc/cron.weekly@monthly 45 cron.monthly nice run-parts

/etc/cron.monthly

Page 12: Automatizacion de Tareas Crond/Anacron Es el servicio que ejecuta las tareas Crontab Permite manipular la tabla de tareas

Formato del Archivo

El campo 1 es el período de recurrencia: Este es un valor numérico que específica el

número de días.

1 - diario 7 - semanal 30 - mensuales N - Este puede ser cualquier valor numérico. N

indica el número de días

Page 13: Automatizacion de Tareas Crond/Anacron Es el servicio que ejecuta las tareas Crontab Permite manipular la tabla de tareas

Formato del Archivo

Campo 2 es retraso: Esto indica el retraso en minutos, es decir, un

número X de minutos que anacron debe esperar antes de ejecutarse luego que la maquina arrancó.

Page 14: Automatizacion de Tareas Crond/Anacron Es el servicio que ejecuta las tareas Crontab Permite manipular la tabla de tareas

Formato del Archivo

El campo 3 es el identificador de Trabajo:

Es el nombre del archivo de trabajo. Debe ser único para cada puesto de trabajo. Estará disponible como un archivo bajo el directorio /var/spool/anacron. Este archivo contendrá una sola línea que indica la última vez que este trabajo fue ejecutado.

Page 15: Automatizacion de Tareas Crond/Anacron Es el servicio que ejecuta las tareas Crontab Permite manipular la tabla de tareas

Formato del Archivo

El campo 4 es el comando:Comando o shell script que debe ejecutarse.

Al igual que los scripts de shell, los comentarios dentro del archivo anacrontab empieza con #

Page 16: Automatizacion de Tareas Crond/Anacron Es el servicio que ejecuta las tareas Crontab Permite manipular la tabla de tareas

START_HOURS_RANGE y RANDOM_DELAY

¿ Que sucede si se apaga el equipo ?

Esto se específica mediante la variable de entorno START_HOURS_RANGE en el archivo /etc/anacrontab.

START_HOURS_RANGE = 3.22

Esto indica que el rango de tiempo es de 3 a.m. a 10 p.m.

RANDOM_DELAY = 45

Por defecto se establece 45 en el archivo. Esto significa que anacron se sumará x minutos (elegidos al azar entre 0 y 45), y añadira esto a la demora definida por el usuario.

Page 17: Automatizacion de Tareas Crond/Anacron Es el servicio que ejecuta las tareas Crontab Permite manipular la tabla de tareas

Cron Vs Anacron

Page 18: Automatizacion de Tareas Crond/Anacron Es el servicio que ejecuta las tareas Crontab Permite manipular la tabla de tareas

Comando 'at'

Permite ejecutar tareas a determinadas horas

Uso:

at [-f archivo] tiempoat [opciones]

d Borra trabajosl Lista trabajos

Page 19: Automatizacion de Tareas Crond/Anacron Es el servicio que ejecuta las tareas Crontab Permite manipular la tabla de tareas

Comando 'at'at 11 am may 20 at now + 1 minat now + 1 dayat now + 1 hourat 10 am tomorrowat 11:00 next monthat 22:00 todayat now + 1 weekat noonat -f myjob now + 1 minAtqAtrm 4

Page 20: Automatizacion de Tareas Crond/Anacron Es el servicio que ejecuta las tareas Crontab Permite manipular la tabla de tareas

Seguridad en Crontab y At

/etc/cron.deny/etc/cron.allow

/etc/at.allow/etc/at.deny

Page 21: Automatizacion de Tareas Crond/Anacron Es el servicio que ejecuta las tareas Crontab Permite manipular la tabla de tareas

Referencia

Fabian Portantier www.portantier.com.ar

http://www.thegeekstuff.com/2011/07/cron-every-5-minutes

http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples

http://www.thegeekstuff.com/2010/06/at-atq-atrm-batch-command-examples

http://www.thegeekstuff.com/2011/05/anacron-examples/