Jak wysłać dane wyjściowe z usługi współdziałania na wiele adresów e-mail?

55

Na początku pliku crontab można użyć MAILTOinstrukcji, aby wskazać, że dane wyjściowe mają zostać wysłane jako wiadomość e-mail na adres e-mail. Chciałbym wysłać dane wyjściowe na wiele adresów. Czy można (i jak) podać wiele adresów?

Boaz
źródło

Odpowiedzi:

72

Może się różnić w zależności od tego, którego pakietu demona cron używasz, ale pochodzi on ze strony Vixie Cron na Ubuntu Hardy:

Jeśli MAILTO jest zdefiniowane (i niepuste), poczta jest wysyłana do użytkownika o takiej nazwie. MAILTO można również wykorzystać do przekierowania poczty do wielu odbiorców poprzez oddzielenie ich odbiorców przecinkiem. Jeśli MAILTO jest zdefiniowane, ale puste (MAILTO = ""), poczta nie zostanie wysłana. W przeciwnym razie poczta jest wysyłana do właściciela crontab.

Jeśli nie używasz Vixie Cron lub nie masz pewności, wypróbuj stronę podręcznika dla pliku crontab: man 5 crontab

Przykład

MAILTO="[email protected],[email protected]"
ThatGraemeGuy
źródło
12
Należy zwrócić uwagę - użyj tylko przecinka między adresami. Nie używaj spacji , w przeciwnym razie cron zarejestruje adres (prawdopodobnie w / var / log / cron lub / var / log / daemon) jako „UNSAFE” i odmówi wysłania na tę listę adresów.
David Gardner,
1
Kiedy oddzielając adresy spacjami zamiast przecinków, zdarzyło mi się, że cronwysłał maile do pierwszego adresu tylko (i crontabgdyby nie skarżył się podczas zapisywania zmian, co jest wstyd ). W syslog ( (CRON) error (bad mailto)) występują błędy , ale nikt nie zauważył ...
Tobias
9

Alternatywnie do powyższych odpowiedzi możesz wysłać je na jeden adres, którym jest grupa poczty. Działa to szczególnie dobrze, jeśli zarządzasz wieloma serwerami, ponieważ łatwiej jest zarządzać adresami w grupie na serwerze pocztowym niż na crontab każdego serwera.

dtoubelis
źródło
IMHO to właściwa odpowiedź. Kto chce utrzymywać indywidualne listy adresów e-mail w różnych plikach crontab?
Satanicpuppy
Utworzyłem prostą listę: 1. Jako root dodaj „wirtualnego odbiorcę” /etc/aliases, dodając taką linię: cron-listeners: [email protected], [email protected]2. W crontab, ustaw MAILTO=cron-listenersJeśli nie masz dostępu do roota, możesz .forwardzamiast tego spróbować metody.
joeytwiddle
4

Jednym z rozwiązań może być .forwardplik na tym koncie użytkownika, który wysyła pocztę na odpowiednie adresy.

Matt Simmons
źródło
1
+1. Plik do przodu to droga.
śleske
0

Najlepszą odpowiedzią jest prawdopodobnie sprawdzenie stron man pod kątem aktualnej wersji cron / crontab twojej dystrybucji, aby sprawdzić, czy jest coś, co można zrobić za pomocą parametru MAILTO, lub określenie adresu, który z kolei przesyła pocztę na wiele adresów.

Bart Silverstrim
źródło
0

Dodaj ,po każdym e-mailu, np .:MAILTO="[email protected],[email protected]"

dannyb2100
źródło
3
W dokumentacji e-maile są oddzielone przecinkiem, używasz tutaj średnika. Czy jesteś pewien, że ta składnia działa?
fizyczny
1
@MichaelHampton the ;nie działa
030
@Alfred Jestem tego świadomy. Tak jak druga osoba, która skomentowała!
Michael Hampton
1
@kasperd Ponieważ zmiana znaczenia postów innych osób jest niewłaściwa. To dotyczy samego plakatu i jak dotąd postanowił go nie poprawiać. Zamiast tego należy zanegować błędne odpowiedzi i skomentować je.
Michael Hampton
1
Poprawiłem mój post. Nie wiem, jak to działało w 2010 roku. Jako @ThatGraemeGuy w powyższym poście. Może zależeć od pakietu Cron.
dannyb2100,