Вы находитесь на странице: 1из 3

La tabla de tareas programadas (crontab)

En cualquier sistema, si escribimos como cualquier usuario la


orden: crontab -e; entraremos inmediatamente en un editor en el que
nos debera de mostrar informacin de la tabla de tareas programadas, o
un fichero con un comentario indicando el formato o en el peor de los
casos, un fichero vaco.
Rellenar este fichero es tener en cuenta que los datos debe de estar
separados por uno o ms espacios, significando cada campo:

minutos: el minuto en el que se va a ejecutar el cron.


hora: la hora en la que se va a ejecutar el cron.
da del mes: da del mes en el que se va a ejecutar el cron.
mes: mes en el que se va a ejecutar el cron.
da de la semana: da de la semana en que se ejecutar el cron.
Este ser en formato numrico de 0-7, siendo domingo tanto el cero
como el siete.

comando: el comando a ejecutar.


Si se configura lo siguiente:
0

/home/yo/mi_comando

*/5 *

/home/yo/mi_otro_comando

0,30 *
0

*
*

*
*

*
7

/home/yo/otro_comando_mas
/home/yo/dominguete

La primera lnea le dice al sistema que se ejecute cuando sean las 5:00h
de cada da, y ejecutar mi_comando. La segunda lnea hace
que mi_otro_comando se ejecute cada 5 minutos. La tercera lnea indica
queotro_comando_mas debe de ejecutarse en el minuto 00 y 30 de cada
hora. Por ltimo, la lnea cuatro, hace que la ejecucin de dominguete se
haga solo el domingo y a las 0:00h.

Cron para administradores


Si ests programando una tarea para que se ejecute de forma recurrente
en el sistema, que adems requiere de unos permisos especiales o
especficos para que se ejecute, es decir, necesita ser un usuario
especfico oroot, entonces debe de programarse dicha tarea en la tabla
de crontab del sistema, donde, adems de especificar el tiempo, se
puede especificar el usuario que la llevar a cabo.

Esto se configura en el fichero /etc/crontab (o en los ficheros


fraccionados que puedes encontrar en la mayora de sistemas
en /etc/crontab.d). El usuario aparece como campo antes del comando.
Solo hay que indicar el nombre del usuario y listo.

Cron para usuarios


Si tienes un usuario en el sistema y quieres hacer algo como que se
ejecute fetchmail cada 15 minutos y rescate el correo de tus cuentas de
correo en tu propia cuenta del servidor, tan solo tienes que ejecutar el
comando de edicin de crontab -e, y poner en el fichero algo como esto:
*/15 *

fetchmail

Con esto, tendremos asegurada la ejecucin cada 15 minutos del


comando (justamente en los minutos 0, 15, 30 y 45 de cada hora).

Cosas a tener en cuenta


Algunas preguntas que nos pueden asaltar son:

Cmo puedo ver los cron que tengo configurados sin


editarlos? estos y otros comandos puedes revisarlos a travs de man
crontab, pero a modo de resea rpida, sera: crontab -l

Si pongo */7 en la primera hora se ejecuta el cron en los


minutos 0, 7, 14, 21, 28, 35, 42, 49, 56, y en la siguiente
hora? Pues en los mismos minutos. El sistema de cron no asegura que
algo se ejecute con una distancia exacta de tiempo, de hecho, la sintaxis
lo revela, si el minuto es divisible por 7, se ejecuta, sino no.
Si tienes ms preguntas del estilo, agrgalas como comentario y las
incluir en este apartado.

Bonus Track: el comando at


Antes de dar por finalizado el artculo vamos a pensar, qu pasa si
quiero programar una tarea para que se ejecute hoy a las 1:30h pero
solo hoy? o incluso, si quiero que se ejecute dentro de 2 horas? Pues
para eso empleamos el comando at.
Por ejemplo, si queremos que se ejecute a las 18:30h del mismo da por
la tarde, basta con decir:

$ at 18:30
at> fetchmail
at> <EOT>
job 1 at Fri Nov 25 18:30:00 2011

Ten presente que se debe de presionar Ctrl+D para finalizar (). Podemos
ver el comando en la cola con el comando atq, o incluso eliminarlo con
el comando atrm.
Para programar un comando dentro de 2 horas, sera:

$ at now + 2 hours
at> fetchmail
at> <EOT>
job 1 at Fri Nov 25 9:05:00 2011

Con lo que el comando se ejecutara en dos horas, a contar desde que se


lanz el comando.
Tambin se permite programar la tarea lanzando la ejecucin de un
fichero de comandos (shell script), as como una gran flexibilidad de
configuracin horaria. Todo est aqu: man at.

Conclusiones
La programacin de tareas es algo trivial en un equipo informtico, para
los usuarios de GNU/Linux, sobretodo, cuando quieres que el equipo se
apague a una determinada hora, convierta un fichero por la noche
cuando ya no usas el equipo y pueda ser saturado sin problemas, o
quieras programar limpieza de ficheros de forma peridica, descarga de
noticias, etc, etc. es ms fcil hacerlo con estos programadores que
tener que hacerlo a mano.

Вам также может понравиться