Einstellung MAILTO=user@example.org
in /etc/cron.daily/foo
nicht funktioniert. Die Skriptausgabe wird nicht an user@example.org gesendet.
Die Seite unter http://www.unixgeeks.org/security/newbie/unix/cron-1.html schlägt ebenfalls eine einfache Lösung vor:
Die Datei /etc/cron.daily/foo
enthält jetzt Folgendes:
#!/bin/sh
/usr/bin/script 2>&1 | mailx -s "$0" stefanl@example.org
Dies sendet eine E-Mail an 'stefanl@example.org' mit dem Betreff, der dem vollständigen Pfad des Skripts entspricht (z /etc/cron.daily/foo
. B. ).
Das sagt Unixgeeks.org dazu:
Ausgabe von Cron
Wie ich bereits sagte, wird die Ausgabe von cron an den Eigentümer des Prozesses oder an die in der Variablen MAILTO angegebene Person gesendet. Aber was ist, wenn Sie das nicht möchten? Wenn Sie die Ausgabe an eine andere Person senden möchten, können Sie sie einfach an den Befehl mail weiterleiten. z.B
cmd | mail -s Benutzer "Betreff der Mail"
Manchmal möchte ich nur die Fehler eines Cronjobs erhalten, nicht die Standardausgabe, also benutze ich diesen Trick. Die Syntax mag auf den ersten Blick falsch aussehen, aber Sie können sicher sein, dass sie funktioniert. Der folgende Cronjob sendet STDOUT an / dev / null und verarbeitet dann STDERR über die Pipeline.
doit 2>&1 >/dev/null | mailx -s "$0" stefanl@example.org
Gleiche Sache, aber an Syslog senden:
doit 2>&1 >/dev/null | /usr/bin/logger -t $ME
Siehe auch meine Antwort auf ServerFault auf Cronjob stderr zu Datei und E-Mail
/etc/crontab
legt keine Standardeinstellungen fest .