tareas programadas - cron jobs - carambula.net · utilizarse para ejecutar cualquier tarea....
Post on 29-Sep-2018
244 Views
Preview:
TRANSCRIPT
Prof. L. CarámbulaSistemas Operativos III – ISBO – ITS – EMT – CETP - 2013
Sistemas Operativos III
Tareas Programadas
Cron Jobs
Prof. L. CarámbulaSistemas Operativos III – ISBO – ITS – EMT – CETP - 2013
¿Qué es cron?
• Cron proviene del nombre de un Titán de la mitología griega Cronos
– rey de los Titanes
– dios del tiempo «humano» • del calendario• de las estaciones• de las cosechas
– hijo de Urano y Gea, y padre de Zeus.
Prof. L. CarámbulaSistemas Operativos III – ISBO – ITS – EMT – CETP - 2013
¿Qué es cron?
• Como se define en las páginas del manual (man cron) cron es un demonio que ejecuta comandos programados.
• Permite a usuarios del S. O. Linux/Unix ejecutar automáticamente comandos o shell-scripts (secuencia de comandos) a una hora y/o fecha específica.
• Generalmente se utiliza para realizar tareas administrativas, como respaldos, pero puede utilizarse para ejecutar cualquier tarea.
Prof. L. CarámbulaSistemas Operativos III – ISBO – ITS – EMT – CETP - 2013
¿Qué es cron?
• En prácticamente todas las distribuciones de Linux se usa la versión Vixie Cron, por el nombre de su desarrollador, Paul Vixie, uno de los grandes gurús de Unix
Prof. L. CarámbulaSistemas Operativos III – ISBO – ITS – EMT – CETP - 2013
Iniciar cron
• cron es un demonio (servicio) y como tal:– solo requiere ser iniciado una vez– generalmente se inicia en el arranque del
sistema a través del demonio init.– el demonio de “cron” es “crond”– en la mayoría de las distribuciones este
servicio se instala automáticamente
Prof. L. CarámbulaSistemas Operativos III – ISBO – ITS – EMT – CETP - 2013
Iniciar cron
• Para iniciar este servicio manualmente ejecutar:
service cron start
– >> Starting crond: [ OK ]
• Depende de la distribución de linux
1. /etc/rc.d/init.d/crond start
2. /etc/init.d/crond start
3. /etc/init.d/cron start
Prof. L. CarámbulaSistemas Operativos III – ISBO – ITS – EMT – CETP - 2013
Iniciar cron
• Para verificar sí esta en ejecución ejecutar:
service cron status
– >> cron start/running, process 1040
• Depende de la distribución de linux
1. /etc/rc.d/init.d/crond status
2. /etc/init.d/crond status
3. /etc/init.d/cron status
Prof. L. CarámbulaSistemas Operativos III – ISBO – ITS – EMT – CETP - 2013
Utilizar cron
• Existen por lo menos tres formas distintas de utilizar el servicio cron:
1. A través de los directorios “cron.*” contenidos dentro del directorio “/etc”
2. Utilizando el archivo “crontab” que también se encuentran dentro del directorio “/etc”
3. Ejecutando el comando “crontab”
– Las dos primeras opciones solo están disponibles para el usuario “root”
Prof. L. CarámbulaSistemas Operativos III – ISBO – ITS – EMT – CETP - 2013
Utilizar cron – 1. directorios
• Al colocar un shell-script en cualquiera de los siguientes directorios, este se ejecutará:
– /etc/cron.hourly• a cada hora (hourly)
– /etc/cron.daily• diariamente (daily)
– /etc/cron.weekly• semanalmente (weekly)
– /etc/cron.monthly• mensualmente (monthly)
Prof. L. CarámbulaSistemas Operativos III – ISBO – ITS – EMT – CETP - 2013
Utilizar cron – 1. directorios
• Un ejemplo:
– script.sh
#!/bin/sh
#Generar respaldo de un directorio
cd /home/fulano
tar cf respaldo.tar *
cp respaldo.tar /root/respaldos
– El archivo debe tener permiso de ejecución
> ls - l script.sh- r w x - - - - - - 1 root root 116 Oct 3 09:30 script.sh
Prof. L. CarámbulaSistemas Operativos III – ISBO – ITS – EMT – CETP - 2013
Utilizar cron – 2. /etc/crontab
• Editar el archivo “crontab” del directorio “/etc”SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
Prof. L. CarámbulaSistemas Operativos III – ISBO – ITS – EMT – CETP - 2013
Utilizar cron – 2. /etc/crontab• Formato del archivo crontab (últimas líneas)
* * * * * usuario comando_a_ejecutar* » significa todos los valores válidos
/ » permite definir una repetición
- » permite definir un rango
, » permite definir varios valores
minutos (0 - 59)horas (0 - 23)
día del mes (1 - 31)mes (1 - 12)
día de la semana (0 - 6) (domingo=0, ... sábado=6)
Prof. L. CarámbulaSistemas Operativos III – ISBO – ITS – EMT – CETP - 2013
Utilizar cron – 2. /etc/crontabEjemplo Descripción
01 * * * * * Se ejecuta en el minuto 1 de cada hora de todos los días
25 9 * * * A las 9:25 a. m. de todos los días
25 21 * * * A las 9:25 p. m. de todos los días
00 7 * * 0 A las 7:00 a. m de todos los domingos
* 7 * * Sun A cada minuto de las 7:00 a las 7:59 de todos los domingos
45 18 1 * * A las 6:45 p.m. del primero día de cada mes
01 * 21 3 * Al minuto 1 de cada hora del 21 de marzo
10 2 * 11 1 A las 2:10 a.m. de todos los lunes de noviembre
30 7 21 3 2 A las 7:30 a. m. del día 21 de marzo y que sea martes
30 7 21 3 * A las 7:30 a. m. del día 21 de marzo de todos los años
15 * * * 6 En el minuto 15 de cada hora de los días sábados
Prof. L. CarámbulaSistemas Operativos III – ISBO – ITS – EMT – CETP - 2013
Utilizar cron – 2. /etc/crontabEjemplo Descripción
59 23 * 1,3 1-5 A las 11:59 p.m. de lunes a viernes, en enero y marzo
55 * 10-28 * 6 En el minuto 55 de todas las horas de los días 10 al 28 de todos los meses y que el día sea sábado
10,30,50 * * * 1,3,5 En el minuto 10, 30 y 50 de todas las horas de los días lunes, miércoles y viernes
*/10 10-16 * * * Cada diez minutos de las 10:00 a.m. a las 4:00 p.m.
* 12 1-10/2 2,8 * Todos los minutos de las 12 a. m., en los días 1,3,5,7 y 9 de enero y mayo.
0 */6 1-10,15,20-25 * 2 Cada 6 horas en los días 1 al 10, del día 15 y del día 20 al 25 de cada mes y que el día sea martes
5/5 1/5 5 5 5 Cada 5 minutos empezando por el minutos 5 de las horas 1, 6, 11, etc. (cada 5 horas empezando a las 1 a. m.) del día 5 de mayo y que sea un viernes
Prof. L. CarámbulaSistemas Operativos III – ISBO – ITS – EMT – CETP - 2013
Utilizar cron – 2. /etc/crontab
• Sí este fuera parte del contenido del archivo “crontab”:
0 21 * * * root /usr/respaldoDiario.sh
0 23 * * 5 root /usr/respaldoSemanal.sh
0 7,20 * * * leo mail -s "S.O. OK” leo@mail.com
• ¿Cuándo se ejecutarían estas tareas?
Prof. L. CarámbulaSistemas Operativos III – ISBO – ITS – EMT – CETP - 2013
Utilizar cron – 3. crontab
• El comando “crontab”, en principio, está disponible para todos los usuarios
• Cada usuario puede tener un archivo “crontab” particular.
• En el directorio “/var/spool/cron” se genera un archivo cron para cada usuario
– Este archivo aunque es de texto, no debe editarse directamente.
– Depende de la distribución el directorio utilizado.
Prof. L. CarámbulaSistemas Operativos III – ISBO – ITS – EMT – CETP - 2013
Utilizar cron – 3. crontab
• crontab –e
– crear o editar las tareas programadas
– utiza el editor por defecto (vi generalmente)
– cada usuario tendrá un archivo “crontab”.
• crontab –l
– lista las tareas programadas del usuario actual.
• crontab –r
– elimina todas las tareas progrmadas del usuario actual.
Prof. L. CarámbulaSistemas Operativos III – ISBO – ITS – EMT – CETP - 2013
Controlar el acceso a cron
• Cron permite controlar que usuarios pueden o no utilizar su servicio.
• Esto se realiza a través de los siguientes archivos:
/etc/cron.allow• usuarios que pueden utilizar cron
/etc/cron.deny• usuarios que no pueden utilizar cron
– sí estos archivos no existen todos los usuarios pueden ejecutar “crontab”
top related