Estoy ejecutando CentOS 5.5.
Tenemos varios cronjobs almacenados en /etc/cron.daily/. Nos gustaría que el correo electrónico de algunos de estos cronjobs vaya a una dirección de correo electrónico en particular, mientras que el resto de los correos electrónicos en /etc/cron.daily/ deben ir a la dirección de correo electrónico predeterminada (root @ localhost).
Cronjobs en /etc/cron.daily/ se ejecutan desde el archivo / etc / crontab. / etc / crontab especifica un campo 'MAILTO'. ¿Puedo anular esto configurando MAILTO en mi /etc/cron.daily/foo cronjob?
¿Cuál es la mejor manera de manejar esto?
/etc/crontab
no especifica valores predeterminados.Respuestas:
Establecer
[email protected]
en/etc/cron.daily/foo
no funciona. La salida del script no se envía a [email protected].La página en http://www.unixgeeks.org/security/newbie/unix/cron-1.html también sugiere una solución simple:
El archivo
/etc/cron.daily/foo
ahora contiene lo siguiente:Esto enviará un correo electrónico a '[email protected]' con el asunto que es igual a la ruta completa del guión (por ejemplo
/etc/cron.daily/foo
).Esto es lo que dice Unixgeeks.org sobre esto:
A veces, solo quiero recibir los errores de un cronjob, no el stdout, así que utilizo este truco. La sintaxis puede parecer incorrecta a primera vista, pero puede estar seguro de que funciona. El siguiente cronjob enviará STDOUT a / dev / null, y luego manejará STDERR a través de la canalización.
Lo mismo, pero enviar a syslog:
También vea mi respuesta en ServerFault a Cronjob stderr para archivar y enviar por correo electrónico
fuente
Una solución más elegante sería usar
/etc/cron.d
directamente. En lugar de tener su script/etc/cron.daily
, colóquelo en algún lugar como/usr/local/sbin/myscript.sh
y luego cree el archivo/etc/cron.d/myscript
como:Esto también le da mucho más control sobre cuándo sucede el trabajo; por ejemplo solo en ciertos días de la semana, etc. Consulte al
crontab(5)
hombre para obtener más información.fuente
Suponiendo que tiene acceso SA en esta máquina, puede crear una nueva cuenta de usuario, agregar las tareas a las tareas cron de esta cuenta. El correo para este usuario puede reenviarse utilizando un archivo .forward en la carpeta de inicio de esta cuenta. Es posible que tenga que configurar permisos para este usuario si las tareas cron requieren acceso privilegiado.
Si esto o la respuesta de Stefan se adaptan mejor realmente depende de la cantidad de problemas que desee para configurarlo y si desea que los mensajes de error vayan al correo electrónico raíz o a las personas que normalmente monitorean la salida diaria.
Buena suerte
fuente