tareas programadas - cron jobs - carambula.net · utilizarse para ejecutar cualquier tarea....

18
Prof. L. Carámbula Sistemas Operativos III – ISBO – ITS – EMT – CETP - 2013 Sistemas Operativos III Tareas Programadas Cron Jobs

Upload: dangdat

Post on 29-Sep-2018

239 views

Category:

Documents


0 download

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” [email protected]

• ¿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”