Frage Überschreiben Sie MAILTO für einen einzelnen Crontab-Eintrag


Wir haben einen Rollenaccount bei der Arbeit, der eine ziemlich große Crontab hat. Seine MAILTO ist auf eine gemeinsame Adresse gerichtet, so dass einige von uns benachrichtigt werden, wenn etwas fehlschlägt.

Ich möchte einen Eintrag zu dieser Crontab hinzufügen, aber ich möchte nur benachrichtigt werden, wenn etwas schief geht. Gibt es eine Möglichkeit, MAILTO für diesen einen Eintrag zu ändern oder auf andere Weise mein Ziel zu erreichen?


18
2018-06-29 22:07


Ursprung


Ein weiterer Ansatz zu den bisher vorgeschlagenen ist die Verwendung der Funktion, die den Benutzer, der den Job ausführt, cron per E-Mail sendet, also einen anderen Benutzer nur für diesen Job erstellen und seine E-Mails an Sie weiterleiten. - Hayden Thring


Antworten:


Du kannst immer nur tun:

MAILTO=you
* * * ...  your cron job
MAILTO=normal.destination

21
2018-06-29 22:19



Haben die Leute, die das aufgewertet haben, es wirklich getestet? Wenn ja, welche Cron-Implementierung? - user1338062
Ich habe es mit dem ICS / Vixie Cron getestet, der mit Ubuntu 14.04 ("3.0pl1-124ubuntu2") ausgeliefert wird, und es funktioniert gut dort. - Nils Toedtmann
Hässlich, aber so ziemlich alles, um das zu klären. Funktioniert! - stamster


Sie können die gesamte Ausgabe immer an den Mail-Befehl mit der korrekten Adresse in einer Subshell übergeben. Solange es nichts auf STDOUT oder STDERR gibt, wird cron die E-Mail nicht senden

10 * * * * sh -c 'dieser Befehl 2> & 1   | mail otheraddress@foo.com '


9
2018-06-29 22:21



Dies funktioniert nicht - der Befehl "mail" sendet unabhängig davon, ob er ausgegeben wird oder nicht. So bekomme ich eine leere Nachricht über den Erfolg, wohingegen ich keine Erfolgsmeldung wünsche. - mike
Nett! Und um leere E-Mails vom Mail-Befehl zu vermeiden, verwenden Sie diesen Parameter: -e (oder -E für einige ..)


Ich kann mich nicht erinnern, ob cron die Datei in der Umgebung vorliest, so dass ich nicht sicher bin, ob Sie das ändern können MAILTO mehrmals in einer Datei. Aber Sie können es immer in eine andere Datei teilen und einfügen /etc/cron.d/foo mit einer MAILTO=some@email.tld.


3
2018-06-29 23:49