Está en la página 1de 39

Cron

Qu es cron? Cron es el nombre del programa que permite a usuarios Linux/Unix ejecutar automticamente comandos o scripts (grupos de comandos) a una hora o fecha especfica
AAlarcn UTFSM

Como iniciar el Cron Generalmente, el servicio Cron, viene habilitado por defecto, y el demonio asociado a l es el

crond
AAlarcn UTFSM

Sin embargo hay a lo menos tres formas de poder validar si el servicio se encuentra activo #> /etc/rc.d/init.d/crond status

AAlarcn UTFSM

Si se encuentra instalado el utilitario service, se puede ocupar el comando #> service crond status Lo que arrojara lo siguiente

crond (pid 507) is running...


AAlarcn UTFSM

O, finalmente se puede revisar con el comando ps


# ps -ef | grep crond

AAlarcn UTFSM

Ahora bien, si el demonio o servicio, no se encontrara corriendo en la mquina, se debe ejecutar:


#> /etc/rc.d/init.d/crond start

AAlarcn UTFSM

Si el servicio no estuviera configurado para arrancar desde un principio, bastara con agregarlo con el comando chkconfig:

#> chkconfig --level 35 crond on


AAlarcn UTFSM

Como usar el Cron El servicio Cron, se puede usar de dos formas, la primera de ella es colocar el script en los directorios que se encuentran en el /etc

AAlarcn UTFSM

En el directorio /etc, se encontrarn directorios tales como:


cron.hourly

cron.dialy
cron.weekly

cron.monthly
AAlarcn UTFSM

Si se coloca un archivo tipo script en cualquiera de estos directorios, entonces el script se ejecutar cada hora, cada da, cada semana o cada mes, dependiendo del directorio

AAlarcn UTFSM

Para que el script, se ejecute correctamente, debe tener el siguiente formato

#!/bin/sh #script que crea archivo vacio cd /home/alumno touch archivo.txt


AAlarcn UTFSM

Nte que la primera lnea empieza con #!/bin/sh#script , que indica que se trata de un script shell de bash, las dems lneas son los comandos que deseamos ejecute el script. Este script podra nombrarse por ejemplo respaldo.sh

AAlarcn UTFSM

Sin embargo, para que pueda ser ejecutado, se le deben cambiar los permisos
#> chmod 700 respaldo.sh #> ls -l respaldo.sh
-rwx------ 1 root root 0 Jul 20 09:30 respaldo.sh
AAlarcn UTFSM

Si este script lo dejamos en cron.hourly, entonces se ejecutar cada hora con un minuto de todos los das.

AAlarcn UTFSM

La segunda forma de ejecutar o usar cron es a travs de modificar directamente el archivo /etc/crontab

AAlarcn UTFSM

Cuando se visualiza por primera vez este archivo, este contiene informacin de la shell, del directorio Home, y de los runparts

AAlarcn UTFSM

SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin #> more /etc/crontab 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
AAlarcn UTFSM

Las primeras cuatro lneas, son: SHELL es el 'shell' bajo el cual se ejecuta el cron. Si no se especifica, se tomar por defecto el indicado en la lnea /etc/passwd correspondiente al usuario que este ejecutando cron

AAlarcn UTFSM

PATH contiene o indica la ruta a los directorios en los cuales cron buscar el comando a ejecutar. Este path es distinto al path global del sistema o del usuario

AAlarcn UTFSM

MAIL TO es a quien se le enva la salida del comando (si es que este tiene alguna salida). Cron enviar un correo a quien se especifique en este variable

AAlarcn UTFSM

HOME es el directorio raz o principal del comando cron, si no se indica entonces, la raz ser la que se indique en el archivo /etc/passwd correspondiente al usuario que ejecuta cron.

AAlarcn UTFSM

A continuacin vienen los run-parts 01 * * * * root run-parts /etc/cron.hourly Da de la Mes Semana Usuario
AAlarcn UTFSM

Da del Minuto Mes


Hora

Comando

Campo

Descripcin

Controla el minuto de la hora en que el comando ser ejecutado, este valor debe de estar entre 0 y 59. Controla la hora en que el comando ser ejecutado, Hora se especifica en un formato de 24 horas, los valores deben estar entre 0 y 23, 0 es medianoche. Da del mes en que se quiere ejecutar el comando. Da del Por ejemplo se indicara 20, para ejecutar el comando Mes el da 20 del mes. Mes en que el comando se ejecutar, puede ser Mes indicado numricamente (1-12), o por el nombre del mes en ingls, solo las tres primeras letras. Minuto

AAlarcn UTFSM

Da en la semana en que se ejecutar el comando, puede Da de la ser numrico (0-7) o por el nombre del da en ingls, solo semana las tres primeras letras. (0 y 7 = domingo)

Usuario Usuario que ejecuta el comando. Comando, script o programa que se desea ejecutar. Este Comando campo puede contener mltiples palabras y espacios.

AAlarcn UTFSM

Un * en el campo de minuto indicar todos los minutos.


Para entender bien este concepto, vea la siguiente tabla Tabla 1
AAlarcn UTFSM

Tambin es posible especificar listas en los campos. Las listas pueden estar en la forma de 1,2,3,4 o en la forma de 1-4 que sera lo mismo. Cron, de igual manera soporta incrementos en las listas, que se indican de la siguiente manera

AAlarcn UTFSM

Para entender bien el concepto, vea la siguiente tabla

Tabla N2

AAlarcn UTFSM

El problema en los casos anteriores, es que solo el root puede generar los cron

Debido a esto es que existe la siguiente forma de generar cron de mltiples usuarios

AAlarcn UTFSM

Ejecutando Cron con mltiples usuarios, comando crontab


Cada usuario puede tener su propio archivo crontab, de hecho el /etc/crontab se asume que es el archivo crontab del usuario root, aunque 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 y es obligatorio en /etc/crontab
AAlarcn UTFSM

Pero cuando los usuarios normales (e incluso root) deseen generar su propio archivo de crontab, entonces utilizaremos el comando crontab

AAlarcn UTFSM

Para ello, deberemos conocer tres comandos esenciales para trabajar con el cron

$> crontab e Genera el cron


$> crontab l lista los cron en curso $> crontab r borra los Cron
AAlarcn UTFSM

Por lo que, cada ves que se requiera generar un cron, se debe ejecutar el comando crontab e, que abrir un planilla en vi El problema radica en que cada vez que necesitamos modificar el Cron, se debe sacar de la tabla con crontab -r
AAlarcn UTFSM

Este comando adems de sacarlo de la tabla de cron, tambin lo borra, por lo que debemos tipear, nuevamente todo el comando cron

AAlarcn UTFSM

Finalmente, existe una solucin para estos problemas, y radica en utilizar la cuarta forma de generar cron, que adems, permitira generar ms de un cron por usuario

AAlarcn UTFSM

Para ello debemos conocer un cuarto comando del crontab $> crontab archivo.cron

AAlarcn UTFSM

Por lo tanto, deberemos tener a lo menos dos archivos para que un cron corra perfectamente.

archivo.sh contiene el script


archivo.cron contiene el cron
AAlarcn UTFSM

Controlando el acceso a cron

Cron, puede controlar que no todos los usuarios del sistema puedan hacer uso del demonio crontab

AAlarcn UTFSM

Para ello, solo basta con modificar un par de archivos, colocando el nombre de los usuarios en ellos /etc/cron.allow permite usuarios

/etc/cron.deny restringe a los usuarios

AAlarcn UTFSM

Finalmente, recuerde que existen cuatro comandos bsicos que debe conocer para generar cron $> crontab archivo.cron $> crontab -e $> crontab -l $> crontab -r
AAlarcn UTFSM

También podría gustarte