¿Cómo enviar la salida de un cronjob a múltiples direcciones de correo electrónico?

55

Al comienzo de un archivo crontab, puede usar las MAILTOinstrucciones para indicar que desea que la salida se envíe como un correo electrónico a una dirección de correo electrónico. Me gustaría enviar la salida a varias direcciones. ¿Es posible (y cómo) especificar múltiples direcciones?

Booz
fuente

Respuestas:

72

Puede diferir dependiendo exactamente del paquete cron daemon que use, pero esto es de la página de manual de Vixie Cron en Ubuntu Hardy:

Si se define MAILTO (y no está vacío), se envía un correo al usuario así llamado. MAILTO también se puede usar para dirigir el correo a múltiples destinatarios separando a los usuarios con una coma. Si se define MAILTO pero está vacío (MAILTO = ""), no se enviará ningún correo. De lo contrario, se envía un correo al propietario del crontab.

Si no está utilizando Vixie Cron, o no está seguro, pruebe la página del manual para el archivo crontab: man 5 crontab

Ejemplo

MAILTO="[email protected],[email protected]"
ThatGraemeGuy
fuente
12
Una cosa a tener en cuenta: use solo una coma entre las direcciones. No use un espacio también , de lo contrario cron registrará la dirección (probablemente en / var / log / cron o / var / log / daemon) como "INSEGURO" y se negará a enviar a esa lista de direcciones.
David Gardner
1
Al separar las direcciones con espacios en lugar de comas, pasó a mí que cronenvía mensajes a la primera dirección única (y crontabno se había quejado al guardar los cambios, lo cual es una pena ). Hay errores en el syslog ( (CRON) error (bad mailto)), pero nadie se dio cuenta ...
Tobias
11

Como alternativa a las respuestas anteriores, puede enviar un correo electrónico a una única dirección, que es un grupo de correo o una lista de distribución. Esto funciona especialmente bien si administra varios servidores, ya que es más fácil administrar las direcciones en su servidor de correo que en el crontab de cada máquina individual.

dtoubelis
fuente
En mi humilde opinión, esta es la respuesta correcta. ¿Quién quiere mantener listas individuales de direcciones de correo electrónico en varias crontabs?
Satanicpuppy
Creé una lista simple: 1. Como root, agregue un "destinatario virtual" /etc/aliasesagregando una línea como esta: cron-listeners: [email protected], [email protected]2. En el crontab, establezca MAILTO=cron-listenersSi no tiene acceso de root, entonces puede probar el .forwardmétodo.
joeytwiddle
4

Una solución podría ser un .forwardarchivo en esa cuenta de usuario que envía correo a las direcciones apropiadas.

Matt Simmons
fuente
1
El archivo +1 .forward es el camino a seguir.
sleske
0

Probablemente, la mejor respuesta es revisar las páginas de manual de la versión actual de cron / crontab de su distribución para ver si hay algo que se pueda hacer con el parámetro MAILTO o especificar una dirección de correo que a su vez reenvía el correo a varias direcciones.

Bart Silverstrim
fuente
0

Agregue ,después de cada correo electrónico, por ejemplo:MAILTO="[email protected],[email protected]"

dannyb2100
fuente
3
En la documentación, los correos electrónicos están separados por una coma, aquí está usando un punto y coma. ¿Estás seguro de que esta sintaxis está funcionando?
physicalattraction
1
@MichaelHampton el ;no funciona
030
@Alfred Soy muy consciente de eso. Así es la otra persona que comentó!
Michael Hampton
1
@kasperd Porque no es apropiado cambiar el significado de las publicaciones de otros. Eso es solo para el póster, y hasta ahora ha decidido no corregirlo. Las respuestas incorrectas deberían ser rechazadas y comentadas en su lugar.
Michael Hampton
1
Corregí mi publicación. No sé cómo funcionaba en 2010. Como @ThatGraemeGuy en una publicación anterior. Podría depender del paquete Cron.
dannyb2100