Wie kann ich die Ausgabe eines Cronjobs an mehrere E-Mail-Adressen senden?


55

Am Anfang einer crontab-Datei können Sie mit der MAILTOAnweisung angeben, dass die Ausgabe als E-Mail an eine E-Mail-Adresse gesendet werden soll. Ich möchte die Ausgabe an mehrere Adressen senden. Ist es möglich (und wie), mehrere Adressen anzugeben?

Antworten:


72

Es kann sich genau unterscheiden, welches Cron-Daemon-Paket Sie verwenden, aber dies ist aus der Manpage von Vixie Cron auf Ubuntu Hardy:

Wenn MAILTO definiert ist (und nicht leer ist), wird E-Mail an den so genannten Benutzer gesendet. MAILTO kann auch zum Weiterleiten von E-Mails an mehrere Empfänger verwendet werden, indem die Empfängerbenutzer durch Kommas getrennt werden. Ist MAILTO definiert, aber leer (MAILTO = ""), wird keine Mail versendet. Andernfalls wird die E-Mail an den Eigentümer der Crontab gesendet.

Wenn Sie Vixie Cron nicht verwenden oder sich nicht sicher sind, lesen Sie die Handbuchseite für die crontab-Datei: man 5 crontab

Beispiel

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

12
Eine Sache zu beachten - verwenden Sie nur ein Komma zwischen den Adressen. Verwenden Sie auch kein Leerzeichen , sonst protokolliert cron die Adresse (wahrscheinlich in / var / log / cron oder / var / log / daemon) als "UNSAFE" und lehnt das Senden an diese Adressliste ab.
David Gardner

1
Wenn Adressen mit Leerzeichen zu trennen , anstatt von Kommas, passierte es mir , dass cronE - Mails an der ersten Adresse gesendet nur (und crontabnicht beschwert hatte , wenn die Änderungen zu speichern, die eine ist schade ). Es gibt Fehler im Syslog ( (CRON) error (bad mailto)), aber niemand bemerkt ...
Tobias

10

Alternativ zu den obigen Antworten können Sie es an eine einzelne Adresse senden, bei der es sich um eine E-Mail-Gruppe handelt. Dies funktioniert besonders gut, wenn Sie mehrere Server verwalten, da es einfacher ist, Adressen in der Gruppe auf einem Mailserver als auf der Registerkarte jedes einzelnen Servers zu verwalten.


IMHO das ist die richtige Antwort. Wer möchte individuelle Listen von E-Mail-Adressen in verschiedenen Crontabs führen?
Satanicpuppy

Ich habe eine einfache Liste erstellt: 1. Fügen Sie als Root einen "virtuellen Empfänger" hinzu, /etc/aliasesindem Sie eine Zeile wie die folgende hinzufügen: cron-listeners: fred@example.com, george@example.com2. Legen MAILTO=cron-listenersSie in der crontab fest, ob Sie keinen Root-Zugriff haben. Versuchen Sie .forwardstattdessen die Methode.
Joeytwiddle

4

Eine Lösung könnte eine .forwardDatei in diesem Benutzerkonto sein, die E-Mails an die entsprechenden Adressen sendet.


1
+1 .forward-Datei ist der richtige Weg.
Sleske

0

Die beste Antwort ist wahrscheinlich, entweder in Ihren Manpages nach der aktuellen Version von cron / crontab Ihrer Distribution zu suchen, um festzustellen, ob mit dem Parameter MAILTO etwas getan werden kann, oder eine E-Mail-Adresse anzugeben, die E-Mails an mehrere Adressen weiterleitet.


0

Fügen Sie ,nach jeder E-Mail Folgendes hinzu:MAILTO="some.user1@example.com,some.user2@example.com"


3
In der Dokumentation sind die E-Mails durch ein Komma getrennt, Sie verwenden hier ein Semikolon. Sind Sie sicher, dass diese Syntax funktioniert?
physische

1
@ MichaelHampton das ;funktioniert nicht
030

@ Alfred Mir ist das sehr wohl bewusst. So ist die andere Person, die kommentierte!
Michael Hampton

1
@kasperd Weil es nicht angebracht ist, die Bedeutung der Beiträge anderer zu ändern. Das ist nur für das Plakat, und bisher hat er beschlossen, es nicht zu korrigieren. Falsche Antworten sollten stattdessen abgelehnt und kommentiert werden.
Michael Hampton

1
Korrigierte meinen Beitrag. Ich weiß nicht, wie es 2010 funktioniert hat. Als @ThatGraemeGuy in einem der obigen Posts. Könnte vom Cron-Paket abhängen.
Dannyb2100
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.