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

Tareas Programadas - Cron Jobs - carambula.net · utilizarse para ejecutar cualquier tarea. Sistemas Operativos III – ISBO – ITS – EMT – CETP - 2013 Prof. L. Carámbula ¿Qué

Sep 29, 2018

Download

Documents

dangdat
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Tareas Programadas - Cron Jobs - carambula.net · utilizarse para ejecutar cualquier tarea. Sistemas Operativos III – ISBO – ITS – EMT – CETP - 2013 Prof. L. Carámbula ¿Qué

Prof. L. CarámbulaSistemas Operativos III – ISBO – ITS – EMT – CETP - 2013

Sistemas Operativos III

Tareas Programadas

Cron Jobs

Page 2: Tareas Programadas - Cron Jobs - carambula.net · utilizarse para ejecutar cualquier tarea. Sistemas Operativos III – ISBO – ITS – EMT – CETP - 2013 Prof. L. Carámbula ¿Qué

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.

Page 3: Tareas Programadas - Cron Jobs - carambula.net · utilizarse para ejecutar cualquier tarea. Sistemas Operativos III – ISBO – ITS – EMT – CETP - 2013 Prof. L. Carámbula ¿Qué

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.

Page 4: Tareas Programadas - Cron Jobs - carambula.net · utilizarse para ejecutar cualquier tarea. Sistemas Operativos III – ISBO – ITS – EMT – CETP - 2013 Prof. L. Carámbula ¿Qué

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

Page 5: Tareas Programadas - Cron Jobs - carambula.net · utilizarse para ejecutar cualquier tarea. Sistemas Operativos III – ISBO – ITS – EMT – CETP - 2013 Prof. L. Carámbula ¿Qué

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

Page 6: Tareas Programadas - Cron Jobs - carambula.net · utilizarse para ejecutar cualquier tarea. Sistemas Operativos III – ISBO – ITS – EMT – CETP - 2013 Prof. L. Carámbula ¿Qué

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

Page 7: Tareas Programadas - Cron Jobs - carambula.net · utilizarse para ejecutar cualquier tarea. Sistemas Operativos III – ISBO – ITS – EMT – CETP - 2013 Prof. L. Carámbula ¿Qué

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

Page 8: Tareas Programadas - Cron Jobs - carambula.net · utilizarse para ejecutar cualquier tarea. Sistemas Operativos III – ISBO – ITS – EMT – CETP - 2013 Prof. L. Carámbula ¿Qué

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”

Page 9: Tareas Programadas - Cron Jobs - carambula.net · utilizarse para ejecutar cualquier tarea. Sistemas Operativos III – ISBO – ITS – EMT – CETP - 2013 Prof. L. Carámbula ¿Qué

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)

Page 10: Tareas Programadas - Cron Jobs - carambula.net · utilizarse para ejecutar cualquier tarea. Sistemas Operativos III – ISBO – ITS – EMT – CETP - 2013 Prof. L. Carámbula ¿Qué

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

Page 11: Tareas Programadas - Cron Jobs - carambula.net · utilizarse para ejecutar cualquier tarea. Sistemas Operativos III – ISBO – ITS – EMT – CETP - 2013 Prof. L. Carámbula ¿Qué

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

Page 12: Tareas Programadas - Cron Jobs - carambula.net · utilizarse para ejecutar cualquier tarea. Sistemas Operativos III – ISBO – ITS – EMT – CETP - 2013 Prof. L. Carámbula ¿Qué

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)

Page 13: Tareas Programadas - Cron Jobs - carambula.net · utilizarse para ejecutar cualquier tarea. Sistemas Operativos III – ISBO – ITS – EMT – CETP - 2013 Prof. L. Carámbula ¿Qué

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

Page 14: Tareas Programadas - Cron Jobs - carambula.net · utilizarse para ejecutar cualquier tarea. Sistemas Operativos III – ISBO – ITS – EMT – CETP - 2013 Prof. L. Carámbula ¿Qué

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

Page 15: Tareas Programadas - Cron Jobs - carambula.net · utilizarse para ejecutar cualquier tarea. Sistemas Operativos III – ISBO – ITS – EMT – CETP - 2013 Prof. L. Carámbula ¿Qué

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?

Page 16: Tareas Programadas - Cron Jobs - carambula.net · utilizarse para ejecutar cualquier tarea. Sistemas Operativos III – ISBO – ITS – EMT – CETP - 2013 Prof. L. Carámbula ¿Qué

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.

Page 17: Tareas Programadas - Cron Jobs - carambula.net · utilizarse para ejecutar cualquier tarea. Sistemas Operativos III – ISBO – ITS – EMT – CETP - 2013 Prof. L. Carámbula ¿Qué

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.

Page 18: Tareas Programadas - Cron Jobs - carambula.net · utilizarse para ejecutar cualquier tarea. Sistemas Operativos III – ISBO – ITS – EMT – CETP - 2013 Prof. L. Carámbula ¿Qué

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”