Überschreiben Sie MAILTO für einen einzelnen crontab-Eintrag


20

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

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


Ein weiterer Ansatz für die bisher vorgeschlagenen besteht darin, die Funktion zu verwenden, mit der E-Mails an den Benutzer gesendet werden, der den Auftrag ausführt. Legen Sie also einen anderen Benutzer nur für diesen Auftrag fest und leiten Sie die E-Mails an Sie weiter.
Hayden Thring

Antworten:


21

Sie können immer nur tun:

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

1
Haben die Leute, die dieses Video hochgeladen 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 dort gut.
Nils Toedtmann

Hässlich, aber so ziemlich nur, um das zu klären. Funktioniert!
Stempel

10

Sie können die gesamte Ausgabe immer mit der richtigen Adresse in einer Subshell an den Befehl mail weiterleiten. Solange sich nichts auf STDOUT oder STDERR befindet, sendet cron die E-Mail nicht

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


1
Dies funktioniert nicht - der Befehl "mail" sendet unabhängig davon, ob er ausgegeben wird oder nicht. So erhalte ich eine leere Nachricht über den Erfolg, wohingegen ich keine Nachricht über den Erfolg haben möchte.
Mike

5
Nett! Verwenden Sie diesen Parameter, um zu vermeiden, dass E-Mails aus dem Befehl mail leer sind: -e (oder -E für einige ..)

3

Ich kann mich nicht erinnern, ob cron die Datei zum Einlesen in die Umgebungsvariablen vorbereitet hat. Daher bin ich mir nicht sicher, ob Sie MAILTOeine einzelne Datei mehrmals ändern können . Aber man kann spaltete es immer auf eine andere Datei und legen Sie sie in /etc/cron.d/foomit ein MAILTO=some@email.tld.

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.