Hör auf, cron mich zu mailen

5931
Richard Hoskins

Wie kann ich verhindern, dass cron mir die Ergebnisse meiner geplanten Jobs per E-Mail sendet?

10

3 Antworten auf die Frage

15
OscarRyz

Durch Setzen der Umgebungsvariable "MAILTO" als ""

Etwas wie:

SHELL=/bin/bash MAILTO=    01 * * * * /your/path/to/script/here.sh 
12
Rob

Wenn Sie möchten, dass ein einzelner Job die E-Mail anhält, hängen Sie einfach> / dev / null 2> & 1 an

Zum Beispiel:

0 * * * * /home/script >/dev/null 2>&1 
Wenn Sie sicher sind, dass ein Durchlauf abgeschlossen ist, bevor der nächste startet, kann es sich lohnen, die Ausgabe in eine benannte Datei umzuleiten, anstatt nach / dev / null. Dies gibt die Möglichkeit, zu überprüfen, was beim letzten Durchlauf passiert ist, wenn Sie einen Fehler vermuten Problem. mas vor 15 Jahren 1
4
dbr

Cron sendet Ihnen nur eine E-Mail, wenn auf stdoutoder eine Ausgabe erfolgt stderr.

Wenn Sie ein Skript geschrieben haben, machen Sie es weniger ausführlich - entfernen Sie unnötige Anweisungen echooder printAnweisungen. Das Umleiten stdoutzu /dev/nullist auch eine gültige Lösung:

2 * * * * /my/script > /dev/null 

Wenn Sie immer noch Nachrichten erhalten, nachdem das zu tun, dann ist der Ausgang auf stderr, so dass es sollte ein Fehler sein, die Sie lösen sollen .. Wenn nicht, können Sie umleiten stderrzu /dev/nullmit ..

2 * * * * /my/script > /dev/null 2> /dev/null 

..aber das Ignorieren von Fehlermeldungen ist generell eine schlechte Idee! (Woher wissen Sie, wenn der Cronjob kaputt ist?)

Sie können die Ausgabe eines bestimmten Befehls von stderr nach stdout umleiten, 2>&1beispielsweise:

command_which_prints_messages_to_stderr 2>&1 # redirect stderr to stdout 

..then direkt stdoutzu /dev/nullIhrem Cron - Job - so Sie den lauten Befehl zum Schweigen bringen, ohne Fehlermeldungen zu verlieren