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?

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="user.one@domain.one,user.two@domain.two"

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.


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: fred@example.com, george@example.com2. 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.


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.


0

Dodaj ,po każdym e-mailu, np .:MAILTO="some.user1@example.com,some.user2@example.com"


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,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.