Está en la página 1de 9

Gesti n de tareas autom ticas en Linux o a

Resumen En Linux, las tareas pueden congurarse para que se ejecuten de forma autom tica en un perodo de tiempo concreto y en las fechas indicadas. El a sistema Linux se distribuye precongurado para ejecutar determinadas tareas del sistema de modo que el sistema se mantenga actualizado. Por ejemplo, la base de datos slocate se actualiza diariamente. Un administrador del sistema puede utilizar las tareas autom ticas para realizar copias de seguria dad peri dicas, controlar el sistema y ejecutar scripts personalizados, entre o otras tareas. Linux contiene cuatro utilidades de tareas autom ticas: cron, anacron, at a y batch.

1. Cron
Cron es un demonio que sirve para ejecutar tareas programadas seg n una u combinaci n de la hora, da del mes, mes, da de la semana y semana. o Cron asume que el sistema est activo de forma continua. Si el sistema no a est activo cuando est programada una tarea, Cron no se ejecuta. Para congurar a a las tareas en funci n de los perodos, en vez de seg n horas exactas, consulte la o u Secci n 2. Para programar las tareas contempor neas, remtase a la Secci n 3. o a o

1.1. Conguraci n de una tarea Cron o


El chero de conguraci n principal de cron, /etc/crontab, contiene las o lneas siguientes: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin \verb+MAILTO=root+ HOME=/ 1

# run-parts 01 * * * * root run-parts \verb+/etc/cron.hourly+ 02 4 * * * root run-parts \verb+/etc/cron.daily+ 22 4 * * 0 root run-parts \verb+/etc/cron.weekly+ 42 4 1 * * root run-parts \verb+/etc/cron.monthly+ Las primeras cuatro lneas son variables que se usan para congurar el entor no 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) a y la variable PATH dene la ruta usada para ejecutar los comandos. El resultado de las tareas cron se enva por correo electr nico al nombre de usuario deni o do con la variable MAILTO. Si la variable MAILTO se dene como una cadena vaca (MAILTO=""), no se enviar correo electr nico. La variable HOME puede a o utilizarse para establecer el directorio principal que deber usarse al ejecutar los a comandos o scripts. Cada lnea del chero /etc/crontab tiene el formato siguiente: minute hour day month dayofweek command minute n mero entero entre 0 y 59 u hour n mero entero entre 0 y 23 u day n mero entero entre 1 y 31 (debe ser un da v lido si se especica un u a mes) month n mero entero entre 1 y 12 (o nombre corto del mes, por ejemplo, u ene, feb, etc.) dayofweek n mero entero entre 0 y 7, donde 0 o 7 corresponde a Domingo u (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 que usted haya escrito.) En cualquiera de los valores antes indicados, se puede utilizar un asterisco (*) para especicar todos los valores v lidos. Por ejemplo, un asterisco para el valor a de mes signica que el comando se ejecutar cada mes dentro de las limitaciones a del resto de los valores. Un gui n (-) entre los n meros enteros indica un intervalo de n meros enteros. o u u Por ejemplo, 1-4 signica los n meros enteros 1, 2, 3 y 4. u 2

Una lista de valores separados por comas (,) especica una lista. Por ejemplo, 3, 4, 6, 8 indica esos cuatro n meros enteros. u La barra (/) puede utilizarse para especicar valores de pasos. El valor de un n mero entero se puede omitir dentro de un intervalo si se indica a continuaci n u o del intervalo lo siguiente /<n mero entero>. Por ejemplo, 0-59/2 puede usarse u para denir el resto de los minutos del campo minuto. Los valores de pasos tambi n pueden utilizarse con un asterisco. Por ejemplo, el valor */3 puede usarse en e el campo de mes para omitir el tercer mes. Las lneas que empiezan por almohadilla (#) son comentarios y no se procesan. Como podr observar en el archivo /etc/crontab, usa el script run-parts a para ejecutar los scripts en los directorios /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly, y /etc/cron.monthly cada hora, diaria, semanal o mensual, respectivamente. Los cheros de estos directorios deben ser scripts de shell. Si las tareas cron deben ejecutarse seg n una programaci n distinta a la hora, u o da, semana o mes, esto puede agregarse en el directorio /etc/cron.d. Todos los cheros de este directorio utilizan la misma sintaxis que /etc/crontab. # record the memory usage of the system every monday # at 3:30\verb+AM+ 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 Los usuarios no root pueden congurar las tareas cron tasks con la utilidad crontab. Todos los crontabs denidos 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 sesi n o como ese usuario y escriba el comando crontab -e para modicar el crontab del usuario con el editor especicado por la variable de entorno VISUAL o EDITOR. El chero usa el mismo formato que /etc/crontab. Cuando se guardan los cambios en crontab, el crontab se almacena seg n el nombre de usuau rio, y se escribe en el chero /var/spool/cron/username. El demonio cron controla el chero /etc/crontab, el directorio \etc/cron.d/ y el directorio /var/spool/cron cada minuto para cada cambio. Si se encuentra alg n cambio, estos se descargan en la memoria. De este modo, el demonio no u necesita ser reiniciado si se cambia un chero crontab. 3

1.2. Control de acceso a Cron


Los cheros /etc/cron.allow y /etc/cron.deny se usan para restringir el acceso a cron. El formato de los dos cheros de acceso es un nombre de usuario en cada lnea. No est permitido espacio en blanco en ninguno de los a cheros. El demonio cron (crond) no deber ser reiniciado si los cheros de control a de acceso se modican. Los cheros de control de acceso se leen cada vez que el usuario intenta a adir o borrar una tarea cron. n El usuario root puede utilizar siempre cron, sin prestar atenci n a los nombres o de usuarios listados en los cheros de control de acceso. Si existe el chero cron.allow, tan s lo se permitir a los usuarios presentes en o a la lista utilizar cron y el chero cron.deny se ignorar . a Si cron.allow no existe, todos los usuarios listados en cron.deny no se les permite usar cron.

1.3.

Iniciar y nalizar 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 14 para m s de a talles sobre c mo iniciar el servicio cron autom ticamente al arrancar el sistema. o a

2.

Anacron

Anacron es un programador de tareas similar a cron, con la diferencia de que no necesita que el sistema est en ejecuci n. Se puede utilizar para ejecutar los e o procesos que cron ejecuta normalmente de forma diaria, semanal y mensual. Para usar el servicio Anacron, debe tener instalado el paquete RPM anacron. Para determinar si est instalado este paquete, utilice el comando rpm -q anaa cron. Si quiere comprobar que el servicio est en ejecuci n, utilice el comando a o /sbin/service anacron status.

2.1.

Conguraci n de las tareas de Anacron o

Las tareas Anacron est n incluidas en el chero de conguraci n /etc/anacrontab. a o Cada lnea del chero de conguraci n corresponde a una tarea y tiene el formato o siguiente: 4

period delay job-identier command period frecuencia (en das) con la que se ejecuta el comando delay tiempo de retraso en minutos job-identier descripci n de las tareas, usados en los mensajes Anacron y o como el nombre del identicador de la estampilla del proceso, puede contener cualquier caracter no en blanco (excepto barras oblicuas) command comando que debe ejecutarse Por cada tarea, Anacron determina si la tarea ha sido ejecutada dentro del perodo especicado en el campo period del archivo de conguraci n. Si no se ha o ejecutado dentro de ese perodo, Anacron ejecutar el comando especicado en a el campo command despu s de esperar la cantidad de tiempo especicado en el e campo delay. Una vez nalizada la tarea, Anacron registra la fecha en el chero de marca de fecha que se encuentra en el directorio /var/spool/anacron. S lo se utiliza o la fecha (no la hora), y se usa el valor de job- identier como nombre de chero del chero de marca de hora. Las variables de entorno, como SHELL y PATH , pueden denirse en la parte superior de /etc/anacron, de forma similar al chero de conguraci n de o cron. El aspecto del chero de conguraci n por defecto es similar a como se indica o a continuaci n: o # \verb+/etc/anacrontab:+ configuration file for anacron # See anacron(8) and anacrontab(5) for details. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # These entries are useful for a Linux system. 1 5 cron.daily run-parts \verb+/etc/cron.daily+ 7 10 cron.weekly run-parts \verb+/etc/cron.weekly+ 30 15 cron.monthly run-parts \verb+/etc/cron.monthly+ Tal como puede ver en la Figura 28-1, anacron para Linux se congura de modo que queda garantizada la ejecuci n diaria, semanal y mensual de las tareas o cron. 5

2.2. Iniciar y nalizar el servicio


Para arrancar el servicio anacron, use el comando /sbin/service anacron start. Para detener el servicio, use el comando /sbin/service anacron stop. Se recomienda arrancar el servicio en el momento del arranque. Remtase al Captulo 14 para m s a detalles sobre el inicio del servicio anacron de manera autom tica al momento de a arranque.

3.

At y Batch

Mientras que cron y anacron se usan para programar tareas, el comando at se usa para programar una unica tarea en un tiempo especco. El comando batch se usa para programar que se ejecute una s la tarea cuando los sistemas cargan las o cadas promedio por debajo de 0.8. Para poder usar at or batch debe tener el paquete RPM at instalado y el sistema atd en funcionamiento. Para determinar si el servicio se est ejecutando, utilice el a comando /sbin/service atd status.

3.1.

Conguraci n de tareas o

Para programar una tarea no repetitiva en un tiempo especco, escriba el co mando at time, en el que time es el tiempo para ejecutar el comando. El argumento time puede ser uno de los siguientes: formato HH:MM Por ejemplo,04:00 especica 4:00AM. Si se inserta el tiempo, se ejecuta en el tiempo especco el da despu s. e midnight Especica 12:00AM. noon Especica 12:00PM. teatime Especica 4:00PM. formato del nombre-mes, da y a o Por ejemplo, Enero 15 del a o 2002. n n El a o es opcional. n formato MMDDYY, MM/DD/YY, o MM.DD.YY Por ejemplo, 011502 para el da 15 de Enero del a o 2002. n 6

ahora + tiempo el tiempo est en minutos, horas, das o semanas. Por a ejemplo, ahora + 5 das, especica que el comando debera ser ejecutado a la misma hora en 5 das. La hora debe ser especicada en primer lugar, seguido por la fecha opcional. Para m s informaci n sobre el formato del tiempo, lea el chero del texto a o /usr/share/doc/at-<version>/timespec. Tras haber escrito el comando at con el argumento del tiempo, el prompt atser visualizado. Escriba el comando a ejecutar, pulse [Intro] y escriba a Ctrl-D. Se puede especicar m s de un comando escribiendo cada comando sea guido de la tecla [Intro]. Despu s de haber escrito todos los comandos, pulse e [Intro] para obtener una lnea en blanco y escriba Ctrl-D. Alternativamen te, se puede introducir un script de shell en el int rprete de comandos y escribir e Ctrl-D en una lnea en blanco para salir. Si se introduce un script, la congura ci n de la shell usada ser la conguraci n de la shell en la SHELL del usuario, la o a o shell de registro del usuario o /bin/sh (el primero que se encuentre). Si la conguraci n de comandos o el script intentan visualizar informaci n, la o o salida de datos ser enviada va correo electr nico al usuario. a o Use el comando atq para visualizar los trabajos pendientes. Remtase a la Sec ci n 28.3.3 para m s informaci n. o a o El uso del comando at puede ser restringido. Remtase a la Secci n 28.3.5 para o m s detalles. a

3.2. Conguraci n de tareas Batch o


Para ejecutar una tarea no repetitiva cuando el promedio de carga est por a debajo de 0.8, utilice el comando batch. Tras haber escrito el comando batch, se visualiza el int rprete de comandos e at. Escriba el comando a ejecutar, pulse [Intro] y escriba Ctrl-D. Se puede especicar m s de un comando al escribir cada comando seguido de la tecla a [Intro]. Tras haber escrito todos los comandos, pulse [Intro] para acceder a una lnea en blanco y escriba Ctrl-D. Se puede introducir de forma alternativa un script de shell en el int rprete de comandos y escribir Ctrl-D en una lnea e en blanco para salir. Si se introduce un script, la shell usada es la conguraci n o de la she en el entorno SHELL del usuario, la shell de login del usuario, o /bin/sh (todo lo que se encuentre en primer lugar). Tan pronto como el promedio de carga est bajo 0.8, se ejecutar la conguraci n del comando o el script. a a o 7

Si la conguraci n de comandos o el script intentan visualizar informaci n, la o o salida de datos ser enviada va correo electr nico al usuario. a o Use el comando atq para visualizar los trabajos pendientes. Remtase a la Sec ci n 3.3 para m s informaci n. o a o El uso del comando batch puede ser restringido. Remtase a la Secci n 3.5 o para m s detalles. a

3.3.

Visualizaci n de las tareas pendientes o

Para visualizar las tareas pendientes at y batch, use el comando atq. Se muestra una lista de tareas pendientes, con cada lnea de trabajo. Cada lnea est en el a n mero de tarea del formato, la fecha, la hora, el tipo de tarea y el nombre de u usuario. Los usuarios tan s lo pueden ver sus propias tareas. Si el usuario root o ejecuta el comando atq, se visualizar n todas las tareas para los usuarios. a

3.4.

Opciones adicionales de la lnea de comandos

Opciones adicionales de la lnea de comandos para at y batch incluyen: -f Lee los comandos o script del shell desde un archivo en vez de ser especicados en el int rprete de comandos. e -m Enva un email al usuario cuando se ha completado la tarea. -v Muestra la hora en la que la tarea ser ejecutada. a

3.5.

Control de acceso a At y Batch

Los cheros /etc/at.allow y /etc/at.deny pueden ser usados para restringir el acceso a los comandos at y batch. El formato de ambos cheros de control de acceso es un nombre de usuario en cada lnea. El espacio en blanco no est permitido en ning n chero. El (atd) demonio at no deber ser reiniciado a u a si los cheros de control de acceso son modicados. Los cheros de control de acceso se leen cada vez que un usuario intenta ejecutar los comandos at y batch. El usuario root siempre puede ejecutar los comandos at y batch, sin tener en cuenta los cheros de control de acceso. Si existe el chero at.allow tan s lo se permitir a los usuarios listados usar at o a o batch y el chero at.deny ser ignorado. a 8

Si at.allow no existe, a todos los usuarios listados en at.deny no se les permitir usar at o batch. a

3.6. Iniciar y nalizar el servicio


Para iniciar el servicio at, use el comando /sbin/service atd start. Para detener el servicio, use el comando /sbin/service atd stop. Se le recomienda que inicie el servicio durante el momento de arranque. Remtase al Captulo 14 para m s a detalles sobre como arrancar el servicio cron al momento de arranque.

También podría gustarte