Come inviare l'output da un cronjob a più indirizzi e-mail?


55

All'inizio di un file crontab è possibile utilizzare l' MAILTOistruzione per indicare che si desidera che l'output venga inviato come e-mail a un indirizzo e-mail. Vorrei inviare l'output a più indirizzi. È possibile (e come) specificare più indirizzi?

Risposte:


72

Potrebbe differire in base esattamente al pacchetto di demoni cron che usi, ma questo è dalla manpage di Vixie Cron su Ubuntu Hardy:

Se MAILTO è definito (e non vuoto), la posta viene inviata all'utente così chiamato. MAILTO può anche essere utilizzato per indirizzare la posta a più destinatari separando gli utenti destinatari con una virgola. Se MAILTO è definito ma vuoto (MAILTO = ""), la posta non verrà inviata. In caso contrario, la posta viene inviata al proprietario del crontab.

Se non stai usando Vixie Cron o non sei sicuro, prova la pagina di manuale per il file crontab: man 5 crontab

Esempio

MAILTO="user.one@domain.one,user.two@domain.two"

12
Una cosa da notare: utilizzare solo una virgola tra gli indirizzi. Non usare anche uno spazio , altrimenti cron registrerà l'indirizzo (probabilmente in / var / log / cron o / var / log / daemon) come "UNSAFE" e rifiuterà di inviare a quell'elenco di indirizzi.
David Gardner,

1
Quando separando gli indirizzi con spazi invece di virgole, a me è capitato che cronmail inviata al primo indirizzo unico (e crontabnon si era lamentato quando salvare le modifiche, che è un vero peccato ). Ci sono errori nel syslog ( (CRON) error (bad mailto)), ma nessuno ha notato ...
Tobias,

11

In alternativa alle risposte di cui sopra, è possibile inviare e-mail a un singolo indirizzo che è un gruppo di posta o una lista di distribuzione. Funziona particolarmente bene se gestisci più server poiché è più facile gestire gli indirizzi sul tuo server di posta piuttosto che nel crontab di ogni singolo computer.


IMHO questa è la risposta giusta. Chi vuole mantenere elenchi individuali di indirizzi e-mail in vari crontab?
Satanicpuppy,

Ho creato un semplice elenco: 1. Come root, aggiungere un "destinatario virtuale" /etc/aliasesaggiungendo una riga come questa: cron-listeners: fred@example.com, george@example.com2. Nel crontab, impostare MAILTO=cron-listenersSe non si dispone dell'accesso root, è possibile provare .forwardinvece il metodo.
joeytwiddle,

4

Una soluzione potrebbe essere un .forwardfile su quell'account utente che invia posta agli indirizzi appropriati.


1
Il file +1 .forward è la strada da percorrere.
sleske,

0

La risposta migliore è probabilmente controllare le pagine man per la versione corrente di cron / crontab della tua distribuzione per vedere se c'è qualcosa che può essere fatto con il parametro MAILTO o specificare un indirizzo di posta che a sua volta inoltra la posta a più indirizzi per te.


0

Aggiungi ,dopo ogni email, ad esempio:MAILTO="some.user1@example.com,some.user2@example.com"


3
Nella documentazione, le e-mail sono separate da una virgola, qui si utilizza un punto e virgola. Sei sicuro che questa sintassi funzioni?
fisica il

1
@MichaelHampton the ;non funziona
030

@Alfred ne sono ben consapevole. Quindi è l'altra persona che ha commentato!
Michael Hampton

1
@kasperd Perché non è appropriato cambiare il significato dei post degli altri. Questo è solo per il poster, e finora ha scelto di non correggerlo. Invece, le risposte errate devono essere ridimensionate e commentate.
Michael Hampton

1
Ho corretto il mio post. Non so come funzionasse nel 2010. Come @ThatGraemeGuy in un post sopra. Potrebbe dipendere dal pacchetto Cron.
dannyb2100,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.