Está en la página 1de 3

Red Hat Enterprise Linux 3: Manual de administracin del sistema

Anterior Siguiente
Captulo 37. Tareas automticas
En Linux, las tareas pueden configurarse para que se ejecuten de forma automtica en un
perodo de tiempo concreto y en las fechas indicadas. El sistema Red Hat Enterprise Linux se
distribuye preconfigurado para ejecutar determinadas tareas del sistema de modo que este
se mantenga actualizado. Por ejemplo, la base de datos slocate utilizada por el comando
locate,se actualiza diariamente. Un administrador del sistema puede utilizar las tareas
automticas para realizar copias de seguridad peridicas, controlar el sistema y ejecutar
scripts personalizados, entre otras tareas.
Red Hat Enterprise Linux contiene varias utilidades de tareas automticas: cron, at y
batch.
37.1. Cron
Cron es un demonio que sirve para ejecutar tareas programadas segn una combinacin de
la hora, da del mes, mes, da de la semana y semana.
Cron asume que el sistema est encendido de forma continua. Si el sistema no est activo
cuando est programada una tarea, Cron no se ejecuta. Para programar tareas que se
ejecutan una sola vez, consulte la Seccin 37.2.
Para usar el servicio cron, debe de tener el paquete RPM vixie-cron instalado y el servicio
crond debe estar en funcionamiento. Para determinar si el paquete est instalado, use el
comando rpm -q vixie-cron. Para determinar si el servicio est funcionando, utilice el
comando /sbin/service crond status.
37.1.1. Configuracin de una tarea Cron
El fichero de configuracin principal de cron, /etc/crontab, contiene las lneas siguientes:
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
Las primeras cuatro lneas son variables que se usan para configurar el entorno en el que se
ejecutan las tareas cron. El valor de la variable SHELL indica al sistema el entorno de shell
que deber utilizarse (en este ejemplo, el shell de bash) y la variable PATH define la ruta
usada para ejecutar los comandos. El resultado de las tareas cron se enva por correo
electrnico al nombre de usuario definido con la variable MAILTO. Si la variable MAILTO se
define como una cadena vaca (MAILTO=""), no se enviar correo electrnico. La variable
HOME puede utilizarse para establecer el directorio principal que deber usarse al ejecutar los
comandos o scripts.
Cada lnea del archivo /etc/crontab representa una tarea y tiene el formato siguiente:
minute hour day month dayofweek command
minute nmero entero entre 0 y 59
hour nmero entero entre 0 y 23
day nmero entero entre 1 y 31 (debe ser un da vlido si se especifica un mes)
month nmero entero entre 1 y 12 (o nombre corto del mes, por ejemplo, ene, feb,
etc.)
dayofweek nmero entero entre 0 y 7, donde 0 o 7 corresponde a Domingo (o el
nombre corto del da de la semana, por ejemplo, dom, lun, etc.)
command el comando a ejecutar (el comando puede ser uno tal como ls /proc
>> /tmp/proc o el comando para ejecutar un script personalizado.)
En cualquiera de los valores antes indicados, se puede utilizar un asterisco (*) para
especificar todos los valores vlidos. Por ejemplo, un asterisco para el valor de mes significa
que el comando se ejecutar cada mes dentro de las limitaciones del resto de los valores.
Un guin (-) entre los nmeros enteros indica un intervalo de nmeros enteros. Por ejemplo, 1-
4 significa los nmeros enteros 1, 2, 3 y 4.
Una lista de valores separados por comas (,) especifica una lista. Por ejemplo, 3, 4, 6, 8
indica esos cuatro nmeros enteros.
La barra oblcua (/) puede utilizarse para especificar valores de salto. El valor de un nmero
entero se puede saltar dentro de un rango si se indica a continuacin del rango con
/<nmero entero>. Por ejemplo, 0-59/2 puede usarse para definir cada otro minuto en
el campo minuto. Los valores de salto tambin pueden utilizarse con un asterisco. Por
ejemplo, el valor */3 puede usarse en el campo de mes para ejecutar la tarea cada tercer
mes.
Las lneas que empiezan por almohadilla o smbolo numeral (#) son comentarios y no se
procesan.
Como podr observar en el archivo /etc/crontab, usa el script run-parts para ejecutar
los scripts en los directorios /etc/cron.hourly, /etc/cron.daily,
/etc/cron.weekly, y /etc/cron.monthly cada hora, diariamente, semanalmente o
mensualmente, respectivamente. Los archivos en estos directorios deben ser scripts de shell.
Si las tareas cron deben ejecutarse segn una programacin distinta a la hora, da, semana o
mes, esto puede agregarse en el directorio /etc/cron.d. Todos los ficheros de este
directorio utilizan la misma sintaxis que /etc/crontab. Remtase al Ejemplo 37-1 para ms
ejemplos.
# record the memory usage of the system every monday
# at 3:30AM in the file /tmp/meminfo
30 3 * * mon cat /proc/meminfo >> /tmp/meminfo
# run custom script the first day of every month at 4:10AM
10 4 1 * * /root/scripts/backup.sh
Ejemplo 37-1. Ejemplos de Crontab
Los usuarios no root pueden configurar las tareas cron tasks con la utilidad crontab. Todos
los crontabs definidos por el usuario se almacenan en el directorio /var/spool/cron y se
ejecutan utilizando los nombres de los usuarios que los han creado. Para crear un crontab
como un usuario, inicie la sesin como ese usuario y escriba el comando crontab -e para
modificar el crontab del usuario con el editor especificado por la variable de entorno VISUAL
o EDITOR. El fichero usa el mismo formato que /etc/crontab. Cuando se guardan los
cambios en crontab, el crontab se almacena segn el nombre de usuario, y se escribe en el
fichero /var/spool/cron/username.
El demonio cron controla el fichero etc/crontab, el directorio etc/cron.d/ y el
directorio /var/spool/cron cada minuto para cada cambio. Si se encuentra algn
cambio, estos se descargan en la memoria. De este modo, el demonio no necesita ser
reiniciado si se cambia un fichero crontab.
37.1.2. Control de acceso a Cron
Los ficheros /etc/cron.allow y /etc/cron.deny se usan para restringir el acceso a
cron. El formato de los dos ficheros de acceso es un nombre de usuario en cada lnea. No
est permitido espacio en blanco en ninguno de los ficheros. El demonio cron (crond) no
deber ser reiniciado si los ficheros de control de acceso se modifican. Los ficheros de
control de acceso se leen cada vez que el usuario intenta aadir o borrar una tarea cron.
El usuario root puede utilizar siempre cron, sin prestar atencin a los nombres de usuarios
listados en los ficheros de control de acceso.
Si existe el fichero cron.allow, tan slo se permitir a los usuarios presentes en la lista
utilizar cron y el fichero cron.deny se ignorar.
Si cron.allow no existe, a todos los usuarios listados en cron.deny no se les permite
usar cron.
37.1.3. Iniciar y finalizar el servicio
Para iniciar el servicio cron, use el comando /sbin/service crond start. Para parar
el servicio, use el comando /sbin/service crond stop. Se le recomienda que inicie el
servicio en el tiempo de arranque. Remtase al Captulo 21 para ms detalles sobre cmo

También podría gustarte