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