Ejecuciones Periodicas

Page 1

Sistema Operativo GNU/Linux Nivel II

M.Sc. Luis Eduardo Sepúlveda Rodríguez


¡

Muchas de las tareas de administración de un servidor se deben llevar a cabo de manera periódica.

¡

Existen tareas que deben realizarse regularmente para el buen funcionamiento del sistema, tales como: compresión de archivos de log, realización de copias de seguridad (backup), entre otras.

¡

El sistema operativo proporciona la herramienta para poder configurar eficientemente todas estas ejecuciones periódicas (cron). Ejecuciones periódicas de scripts o aplicaciones

2


¡

Cron es el nombre del programa que permite a usuarios Linux/Unix ejecutar automáticamente comandos o scripts (grupos de comandos) a una hora o fecha específica.

¡

Cron es lanzado como un demonio del sistema operativo

¡

La configuración del demonio cron se realiza en el archivo /etc/crontab y en los directorios siguientes: §  §  §  §

¡

/etc/cron.hourly/ /etc/ cron.daily/ /etc/cron.weekly/ /etc/cron.monthly/

También existe el /etc/cron.d/, donde podemos situar archivos con un formato especial para configurar la ejecución de determinados programas de manera más flexible.

Ejecuciones periódicas de scripts o aplicaciones

3


SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command # <minuto> <hora> <d铆aMes> <mes> <dia- Semana> <usuario> <comando> 25 6 * * * root test -e /usr/sbin/anacron || run-parts --report /etc/cron.daily 47 6 * * 7 root test -e /usr/sbin/anacron || run-parts --report /etc/cron.weekly 52 6 1 * * root test -e /usr/sbin/anacron || run-parts --report /etc/cron.monthly

Ejecuciones peri贸dicas de scripts o aplicaciones

4


¡

SHELL: Indica el 'shell' bajo el cual se ejecuta el cron. Si no se especifica, se tomará por defecto el indicado en la línea /etc/passwd correspondiente al usuario que este ejecutando cron.

¡

PATH: Indica la ruta a los directorios en los cuales cron buscará el comando a ejecutar. Esta variable PATH es distinta al PATH global del sistema o del usuario.

¡

MAIL TO: Indica a quien se le envía la salida del comando (si es que este tiene alguna salida). Cron enviará un correo a quien se especifique en este variable, es decir, debe ser un usuario válido del sistema o de algún otro sistema. Si no se especifica, entonces cron enviará el correo al usuario propietario del comando que se ejecuta considerando que el sistema de correo esté debidamente configurado.

¡

HOME: es el directorio raíz o principal del comando cron, si no se indica entonces, la raíz será la que se indique en el archivo /etc/passwd correspondiente al usuario que ejecuta cron. Ejecuciones periódicas de scripts o aplicaciones

5


¡  Los comandos anacron y run-­‐parts permiten

la ejecución de todos los scripts que existen en un determinado directorio.

¡  En el archivo /etc/crontab se especifica que

los scripts de ejecución periódica se deben ejecutar por defecto con anacron, y en el caso de no encontrase dicho programa, se intentará ejecutar con el programa run-­‐parts. Ejecuciones periódicas de scripts o aplicaciones

6


¡

Significado de las posiciones

.---------------- minuto (0 - 59) | .------------- hora (0 - 23) | | .---------- día del mes (1 - 31) | | | .------- mes (1 – 12) | | | | .---- día de la semana (0 – 6)(Domingo=0 o 8) | | | | | * * * * * comando para ser ejecutado

Ejecuciones periódicas de scripts o aplicaciones

7


Ejemplo

Descripción

1 * * * *

Todos los días al minuto 1 de cada hora

15 8 * * *

Todos los días a las 8:15 a.m.

15 20 * * *

Todos los días a las 8:15 p.m.

00 5 * * 0

Todos los domingos a las 5 a.m.

* 5 * * Sun

Todos los domingos, cada minuto de 5:00a.m. a 5:59a.m.

45 19 1 * *

El día primero de cada mes a las 7:45 p.m.

01 * 20 7 *

El 20 de julio, cada minuto 1 de cada hora

10 1 * 12 1

A la 1:10 a.m. todos los lunes de diciembre

00 12 16 * Wen

Al mediodía de los días 16 de cada mes y que sea Miércoles

30 9 20 7 4

El día 20 de julio que sea jueves a las 9:30 a.m.

30 9 20 7 *

El día 20 de julio a las 9:30 a.m. sin importar el día de la semana

20 * * * 6

Los días sábados al minuto 20 de cada hora

20 * * 1 6

Los sábados de enero, al minuto 20 de cada hora Ejecuciones periódicas de scripts o aplicaciones

8


Ejemplo

Descripción

59 11 * 1-3 1,2,3,4,5

De lunes a viernes, de enero a marzo a las 11:59 a.m

45 * 10-25 * 6-7

Al minuto 45 de todas las horas de los días 10 al 25 de todos los meses y que el día sea sábado o domingo

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

*/15 10-14 * * *

Todos los días, cada quince minutos de las 10:00a.m. a las 2:00p.m.

* 12 1-10/2 2,8 *

Todos los minutos de las 12 del día, en los días 1,3,5,7 y 9 de febrero y agosto. (El incremento en el tercer campo es de 2 y comienza a partir del 1)

0 */5 1-10,15,20-23 * 3

Cada 5 horas de los días 1 al 10, el día 15 y del día 20 al 23 de cada mes y que el día sea miércoles

3/3 2/4 2 2 2

Cada 3 minutos empezando por el minuto 3 (3,6,9, etc.) de las horas 2,6,10, etc. (cada 4 horas empezando en la hora 2) del día 2 de febrero y que sea martes Ejecuciones periódicas de scripts o aplicaciones

9


¡  Este directorio es tenido en cuenta de forma

automática por el demonio cron para ejecutar tareas periódicamente

¡  Podemos automatizar ejecuciones

personalizadas, a través de la creación de archivos similares al archivo /etc/crontab

Ejecuciones periódicas de scripts o aplicaciones

10


¡

GNU/Linux es un sistema multiusuario y cron es de las aplicaciones que soporta el trabajo con varios usuarios a la vez.

¡

Cada usuario puede tener su propio archivo crontab, de hecho el /etc/crontab se asume que es el archivo crontab del usuario root

¡

No hay problema que se incluyan otros usuarios, y de ahí el sexto campo que indica precisamente quien es el usuario que ejecuta la tarea, el cual es obligatorio en /etc/crontab. Ejecuciones periódicas de scripts o aplicaciones

11


¡

Cuando son los usuarios los que quieren configurar alguna tarea periódica es más usual utilizar archivos particulares para cada uno de ellos.

¡

Con el comando crontab el root podrá pasar los parámetros “-­‐u USUARIO -­‐e” y automáticamente se editará el archivo de configuración particular para el usuario especificado. Ejecuciones periódicas de scripts o aplicaciones

12


¡  Cuando los usuarios normales (e incluso root)

desean generar su propio archivo de crontab, entonces utilizaremos el comando crontab de la siguiente manera $crontab -­‐e

¡  En el directorio /var/spool/cron (puede variar

según la distribución), se genera un archivo cron para cada usuario, este archivo aunque es de texto, no debe editarse directamente. Ejecuciones periódicas de scripts o aplicaciones

13


Instrucción

Descripción

establecerá el archivo.cron como el $crontab archivo.cron crontab del usuario $crontab –e

Abrirá el editor preestablecido donde se podrá crear o editar el archivo crontab

$crontab –l

Lista el crontab actual del usuario, sus tareas de cron

$crontab –r

Elimina el crontab actual del usuario

Ejecuciones periódicas de scripts o aplicaciones

14


¡

Realizar una investigación técnica acerca de los comandos que existen en GNU/Linux para la realización de compresión de archivos; realice pruebas para determinar cual herramienta tiene el mejor nivel de compresión (construir tabla comparativa con archivos de prueba).

¡

Construya un script que permita realizar una copia de seguridad de los archivos de los usuarios del sistema y de los archivos de configuración terminado en .conf que estén ubicados en el directorio /etc.

¡

Programe la ejecución del script para que sea realizado en 10 diferentes momentos

¡

Entregar un documento con los detalles del proceso de instalación y configuración, utilice la distribución del sistema operativo GNU/Linux que prefiera.

Ejecuciones periódicas de scripts o aplicaciones

15


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.