Wie kann ich verhindern, dass cron mir die Ergebnisse der von mir geplanten Jobs per E-Mail sendet?
10
Durch Setzen der Umgebungsvariablen "MAILTO" als ""
Etwas wie:
SHELL=/bin/bash
MAILTO=
01 * * * * /your/path/to/script/here.sh
Wenn Sie möchten, dass ein einzelner Job E-Mails stoppt, fügen Sie einfach> / dev / null 2> & 1 hinzu
Beispielsweise:
0 * * * * /home/script >/dev/null 2>&1
Cron sendet Ihnen nur dann eine E-Mail, wenn eine Ausgabe erfolgt, entweder am
stdout
oderstderr
.Wenn es sich um ein Skript handelt, das Sie geschrieben haben, machen Sie es weniger ausführlich - entfernen Sie unnötige
echo
oderprint
Anweisungen. Das Umleitenstdout
zu/dev/null
ist auch eine gültige Lösung: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 umleitenstderr
zu/dev/null
mit .... obwohl das Ignorieren von Fehlermeldungen im Allgemeinen eine schlechte Idee ist! (Woher wissen Sie, wann der Cron-Job unterbrochen ist?)
Sie können die Ausgabe eines bestimmten Befehls von stderr nach stdout umleiten, indem Sie
2>&1
beispielsweise Folgendes verwenden :..dann direkt
stdout
zu/dev/null
in Ihrem Cron-Job - auf diese Weise bringen Sie den lauten Befehl zum Schweigen, ohne Fehlermeldungen zu verlierenquelle