En los dos posts anteriores (Usar cron para ejecutar tareas repetitivas y Ejemplos de cron para agendar tareas en Linux), explicamos el uso de cron mediante ejemplos y mostramos cómo agregar entradas de crontab para agendar tareas para ser ejecutadas periódicamente. En esta ocasión finalizaremos esta breve serie de posts sobre el tema presentando la teoría sobre cron y algunas consideraciones finales.
Teoría sobre cron
La sección 5 del man page de crontab (la cual se invoca mediante man 5 crontab
) especifica que en el archivo de configuración de este programa (/etc/crontab) podemos otorgarle valores a variables que queremos que estén disponibles durante su ejecución. Algunas de ellas son las siguientes:
PATH contiene los directorios donde crontab podrá buscar por archivos binarios ejecutables. Si el directorio donde se encuentra uno en particular forma parte de esta variable, podremos utilizar una ruta relativa (en vez de una absoluta, como mencionamos en el post anterior) en el sexto campo de la entrada de crontab. Por ejemplo, dada el valor de la variable PATH que mostramos a continuación:
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
si el programa que deseamos ejecutar está ubicado en /usr/local/bin (ver resaltado en rojo), podemos escribir
10 15 * * * miprograma
en vez de
10 15 * * * /usr/local/bin/miprograma
SHELL especifica la shell a utiliza para ejecutar las tareas agendadas. Si se omite esta variable, crontab utilizará por defecto /bin/sh.
MAILTO permite especificar una dirección de correo a la que se deberá enviar la salida de un programa (incluyendo cualquier error). Si se desea enviar el correo electrónico a un usuario del mismo equipo, solamente es necesario especificar el nombre del mismo. Por otra parte, también es posible enviar el reporte a una dirección externa (siempre y cuando el equipo tenga un servicio de correo instalado). Por ejemplo,
MAILTO=alumno
hará el envío al usuario alumno del mismo equipo, mientras que
MAILTO=fulano@example.com
indica que se debe enviar a la dirección mencionada.
Formatos alternativos para las entradas de crontab
En vez de especificar cuándo se debe ejecutar una tarea utilizando el formato de fecha, hora, y día, disponemos de las siguientes alternativas (ver Fig. 1):
Espero que esta serie sobre cron les haya resultado útil. ¡Hasta el próximo post!