You are on page 1of 4

Procesos peridicos y cron

El "daemon" cron en Unix permite lanzar comandos de sh con un calendario predeterminado y es la herramienta
estndar para el manejo de tareas peridicas. cron usualmente se lanza como un daemon en algn script de arranque del
sistema.
Para determinar qu comandos dee ejecutar y en que momento hacerlo! cron lee uno o "arios archi"os de
con#iguracin denominados crontabs $de "cron tale"%.
Estilos de cron
Existen dos estilos de implementar el cron originados en los dos "saores" principales de Unix.
En un cron "a la &'(" existe un cronta nico para todo el sistema! usualmente en /etc/crontab o en /usr/lib/crontab.
(ado que el archi"o es nico para todo el sistema dee ser administrado por el usuario root editando el archi"o cronta
con un editor de texto. En este caso cada rengln del cronta! adems de indicar qu comando ejecutar y cundo hacerlo
dee especi#icar a nomre de qu usuario dee ejecutarse el comando.
)os cron "a la *++" rindan una #lexiilidad mayor al permitir que exista un archi"o cronta di#erente para cada
usuario del sistema. (e esta manera cada usuario puede con#igurar sus propias tareas repetiti"as sin inter"encin del
administrador. Este puede toda",a controlar cuales usuarios pueden utilizar el cron a tra"s de dos archi"os de
con#iguracin adicionales- cron.allow y cron.deny.
.ormalmente los archi"os cronta se encuentran ajo un directorio comn! y cada uno lle"a como nomre de archi"o el
nomre del usuario. Para manejar estos archi"os haitualmente se utiliza el comando crontab! que permite crear!
examinar y editar el archi"o de con#iguracin del usuario que lo in"oca.
)a mayor,a de los Unix modernos! inclusi"e los de origen &'(! tienen un cron "a la *+/+". *lgunos inclusi"e pueden
manejar archi"os cronta de los dos tipos simultneamente como es el caso del ""ixie cron"! un paquete independiente
que puede instalarse en "arias plata#ormas.
Formato de archivos crontab
)os archi"os cronta son archi"os de texto en que se lista una tarea repetiti"a por cada rengln. 'al"o peque0as
di#erencias como la necesidad o no de especi#icar el nomre de usuario! el #ormato es el mismo en todos los sistemas
con los siguientes 1 campos-
minuto hora d,a mes d,a2de2la2semana 3usuario4 comando

Campo

Minuto 5inuto de la hora 6 a 78
Hora 9ora del d,a 6 a :;
Da (,a del mes < a ;<
Mes 5es en el a0o < a <:
Dia_de_la_semana (,a de la semana < a 1 o 6 a =

*tencin>> con el campo da_de_la_semana no todos los cron se comportan igual-
lunes siempre es el d,a <
el domingo casi siempre es el dia 1! pero en algunos casos es el dia 6 $?+@5%
algunos cron modernos $"ixie cron% aceptan los dos "alores $6 y 1% para especi#icar domingo
En todos los campos se puede especi#icar! adems de un "alor exacto! rangos $separando con un guin ABA%! listas
$separando con una coma A!A% y un comodn con el carcter ACA.
Por ejemplo! en la siguiente l,nea-
30 07 * * 1-5 comando

'e indica que se ejecute AcomandoA de lunes a "iernes a las 1-;6hs
'i en una l,nea se especi#ica tanto el campo d,a como el campo d,a2de2la2semana! entonces es su#iciente con que se
satis#aga una sola de las dos condiciones. Para mayor claridad! en el ejemplo-
6!<7!;6!D7 C <; C : comando
se est especi#icando la ejecucin cada cuarto de hora en todos los d,as <; y en todos los d,as martes.
En los rangos y comodines tamin se puede especi#icar el paso de incremento! como en los siguientes ejemplos.
# cada 15 minutos
*/15 * * * * comando1
# cada 2 horas entre las 8 y las 12, idem 8,10,12
* 8-12/2 * * * comando2
Precauciones y errores comunes
Un comando o script puesto a ejecutar automticamente por cron puede comportarse de manera di#erente que cuando
ejecutamos el mismo script desde una sesin interacti"a de usuario. 9ay que tener en cuenta "arios aspectos-
El comando "a a ser lanzado por cron utilizando sh como interpretador de comandos. (eemos tener en cuenta
esto si utilizamos haitualmente otro shell $csh! Esh! ash! tcsh% ya que presentan di#erencias de sintaxis!
"ariales de amiente! etc..
.o se ejecutan los scripts de inicializacin del shell $.login! .pro#ile! .cshrc por ejemplo% que normalmente se
ejecutan al iniciarse una sesin de usuario! por lo que no estarn inicializadas ciertas "ariales de amiente. El
caso ms comn de esto es la "ariale P*+9- o ien dee inicializarse expl,citamente o ien escriirse el
camino completo en el sistema de archi"os de cada comando que se utilice.
(ado que un comando lanzado por cron no corre en un terminal! toda la salida estndar y la salida de error del
comando se en",a por eBmail al usuario. Es prctica usual redireccionar la salida a Fde"Fnull una "ez que han
sido depurados los scripts utilizados.
Un error haitual tiene que "er con que en las l,neas del cronta no se especi#ica el a0o. Es comn que se agende un
comando para ejecutarse una sola "ez pero luego se ol"ide orrar el comando del cronta. En esos casos el ol"ido suele
notarse un a0o ms tarde cuando "uel"e a ejecutarse el comando. Gtra opcin para agendar traajos por una nica "ez
es utilizar el comando at.
Aplicaciones ms usuales
El grueso de las aplicaciones lanzadas desde cron tienen que "er la realizacin de tareas repetiti"as de administracin.
El agendar estas tareas para su realizacin automtica minimiza la proailidad de errores y ol"idos y automatiza a
#a"or del administrador algunas de las tareas ms tediosas. * continuacin se enumeran algunas de las aplicaciones ms
haituales de cron.
impie!a de archivos "/tmp# core# otros$
En los sistemas Unix $y tamin en otros sistemas% suelen generarse archi"os que son de poca o ninguna utilidad para
los usuarios y a menudo ocupan un rea del disco no despreciale. El caso ms notorio es el de los "core dumps" que se
generan cuando un programa #alla. Un core dump es un archi"o que se guarda en el directorio actual del proceso que
"hace crash" con el nomre de core! y contiene una copia de la memoria y el estado del procesador en el momento del
"crash". Hon la ayuda de un deugger! el archi"o core permite al desarrollador del programa que #alla reconstruir la
situacin en el momento de la #alla y detectar cual #ue el prolema. Para los usuarios #inales sin emargo el archi"o core
solamente signi#ica malgastar espacio en disco. 'e utiliza el comando %ind para recorrer el sistema de archi"os y orrar
los archi"os no deseados. En el siguiente ejemplo-
%ind / &'dev &name core &atime () &e'ec rm &% *+ ,-
se orran todos los archi"os de nomre "core" que no han sido accedidos en los ltimos 1 d,as. El parmetro Bxde"
impide que la squeda se extienda ms alla del sistema de archi"os donde se inicia la squeda.
Por di"ersos prolemas las aplicaciones suelen dejar sin orrar archi"os temporales. El administrador dee estar atento
a detectar situaciones de este tipo que se den en su sistema! identi#icar los nomres de los archi"os a orrar y agregar
una l,nea similar en el cronta.
Gtros archi"os candidatos a ser orrados peridicamente por el administrador son el contenido de /tmp o Fvar/tmp.
Accounting
'i se traaja en un entorno en que se cora a cada usuario por la utilizacin de los recursos! la in#ormacin de
accounting dee resumirse y archi"arse peridicamente. Incluso en sistemas donde no se cora por uso de recursos la
in#ormacin de accounting puede utilizarse para diagnosticar prolemas o hacer pre"isiones de necesidades de
ampliaciones del sistema.
.ane/o de archivos de registro de eventos "logs$
)a mayor,a de los ser"icios que corren en un sistema Unix dejan un registro de los e"entos importantes que "an
sucediendo en archi"os de texto. El tama0o de estos archi"os est siempre creciendo por lo que se deen tomar acciones
para orrar o archi"ar los datos ms antiguos.
0he1ueos peridicos de seguridad y de disponibilidad de
recursos de red
(ependiendo de la importancia que tenga para la organizacin la seguridad! suelen ejecutarse chequeos diarios
uscando posiles rechas en la seguridad del sistema. *s, por ejemplo puede mantenerse una lista de los archi"os con
setuid y en caso de detectar un camio reportarlo ",a eBmail al administrador.
Gtro chequeo peridico puede hacerse para generar alarmas en caso de detectar que un recurso en la red no est
disponile. *s, por ejemplo puede hacerse ping a inter"alos de <7 minutos hacia los ser"idores importantes de una
organizacin y en caso de detectar una #alla reportar una alarma a un pager.
E/ecucin de procesos pesados %uera de horario ms cargado
Un ejemplo de esto es la realizacin de respaldos durante la madrugada! en horarios de aja acti"idad del sistema de
archi"os. Gtro ejemplo es agendar el doJnload de algn archi"o muy grande desde Internet para ser ejecutado en
horarios en que la utilizacin del ancho de anda de los enlaces sea menor.
2tros comandos
Gtros comandos que permiten lanzar un comando o programa automticamente son el comando at y el comando batch.
El comando at permite agendar la ejecucin de una tarea para que sea realizada una nica "ez. En la l,nea de comando
dee pasarse la #echa y hora a la que dee ser ejecutada la tarea. El uso del comando at es pre#erile #rente al uso del
cron cuando el comando se ejecutar solamente una "ez. +amin puede usarse at para poner a punto un comando que
luego se "a a incorporar al cronta para su ejecucin peridica.
Por medio del comando batch se puede encargar la ejecucin de una tarea. En este caso no se especi#ica #echa y hora de
ejecucin sino que la tarea ser atendida cuando el sistema se encuentre su#icientemente descargado.
E/ercicios e investigacin
(eterminar que estilo de cron est instalado en su sistema.
Examinar el man del comando cronta e incluir un comando $p. ej. un mail a s, mismo% para la siguiente noche.
Ponerlo a punto utilizando el comando at. .o ol"idar quitar el comando del cronta al d,a siguiente
0omandos y archivos
FetcFcronta y F"arFcronFtas
comandos cron y cronta
at! atch
3ibliogra%a y 4e%erencias
man page de- cron! cronta! at! atch
"Essential Unix Administration"! @risch! cap. K "*utomating tasEs Jith scripts and such".
Unix System Administration Handbook. E"i .emeth! Larth 'nyder! 'cott 'eeass! +rent ?. 9ein! cap. <6
"Periodic Processes".
@UE.+E- http-FFiie.#ing.edu.uyFenseFasignFadmunixFcron.htm

You might also like