Cómo ejecutar tareas Cron en «Modo Silencioso»

En este artículo, os explico cómo configurar cron para que ejecute tareas en «modo silencioso», es decir, sin enviar notificaciones por correo electrónico cada vez que se ejecute un cronjob. Esto es útil para nuestra bandeja de entrada y garantizar que solo recibamos notificaciones cuando realmente las necesitemos.

¿Qué es Cron?

Cron es una utilidad en sistemas Unix-like que permite programar tareas para que se ejecuten de manera automática en intervalos regulares. Es una herramienta poderosa para automatizar procesos y mantener nuestros sistemas funcionando sin intervención manual constante.

Cómo Configurar Cron en Modo Silencioso

Por defecto, cron envía un correo electrónico al usuario cada vez que se ejecuta un cronjob, conteniendo la salida estándar y los errores de la tarea. Sin embargo, puede ser útil desactivar estas notificaciones, especialmente si la salida no es necesaria o si preferimos registrar los resultados de otra manera.

1. Redirigir la Salida a /dev/null

Una forma simple de evitar que cron envíe correos electrónicos es redirigir la salida del cronjob a /dev/null, que es un dispositivo especial que descarta cualquier entrada que reciba. Podemos hacerlo modificando la línea de cronjob en nuestro archivo crontab.

Por ejemplo, si nuestro cronjob original es:

0 2 * * 1 /home/usuario/scripts/backup.sh

Podemos redirigir tanto la salida estándar como los errores al dispositivo nulo con:

0 2 * * 1 /home/usuario/scripts/backup.sh > /dev/null 2>&1

Aquí, > /dev/null redirige la salida estándar (stdout) a /dev/null, y 2>&1 redirige los errores (stderr) a la misma ubicación.

2. Utilizar la Variable de Entorno MAILTO

Otra opción es usar la variable de entorno MAILTO en nuestro archivo crontab para especificar una dirección de correo electrónico a la que se enviarán los mensajes de cron. Si establecemos MAILTO="", cron no enviará correos electrónicos.

Agregamos esta línea al principio de nuestro archivo crontab:

MAILTO=""

Esto desactivará los correos electrónicos para todos los cronjobs definidos en ese archivo crontab.

Ejemplo Práctico

Supongamos que tenemos un script de mantenimiento que se ejecuta todas las noches a las 3 AM y no deseamos recibir correos electrónicos sobre su ejecución. Podemos configurar nuestro crontab de la siguiente manera:

MAILTO=""
0 3 * * * /home/usuario/scripts/maintenance.sh > /dev/null 2>&1

Conclusión

Configurar cron para que ejecute tareas en modo silencioso puede ayudarnos a mantener nuestras notificaciones bajo control y asegurar que solo recibamos correos electrónicos cuando sea realmente necesario. Experimenta con estas configuraciones y ajústalas según tus necesidades.

Recursos Relacionados

Para más detalles sobre el uso de cron y cómo optimizar las tareas programadas, puedes revisar otras entradas:

Espero que esta entrada te sea de utilidad y te ayude a gestionar los trabajo automáticos de manera más efectiva. Si tienes alguna pregunta ¡dispara!