Upload
german-castillo-ojeda
View
221
Download
3
Embed Size (px)
Citation preview
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'
Configuración de crond
/etc/crontab/etc/cron.d/etc/cron.hourly/etc/cron.daily/etc/cron.weekly/etc/cron.montly/var/spool/cron/
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
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
# 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
Mi Primer Crontab
Crontab -e
40 2 * * * echo $(date +%H:%m) >> /tmp/test
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
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
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
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
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
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ó.
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.
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 #
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.
Cron Vs Anacron
Comando 'at'
Permite ejecutar tareas a determinadas horas
Uso:
at [-f archivo] tiempoat [opciones]
d Borra trabajosl Lista trabajos
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
Seguridad en Crontab y At
/etc/cron.deny/etc/cron.allow
/etc/at.allow/etc/at.deny
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/