Welche Optionen stehen zur Verfügung, um Cron-Ergebnisse zu erhalten, und wie werden diese eingerichtet?
-
09-06-2019 - |
Frage
Ich weiß, dass das Standardverhalten von Cron darin besteht, normale und Fehlerausgaben an die lokale E-Mail-Box des Cron-Besitzers zu senden.
Gibt es andere Möglichkeiten, diese Ergebnisse zu erhalten (z. B. um sie per E-Mail an eine Reihe von Personen zu senden, sie irgendwo zu speichern usw.)?
Lösung
Sie können die Dateiumleitung sowohl für stdout als auch für stderr entweder auf den angezeigten Befehl oder auf den tatsächlichen Befehl in der Crontab übertragen command > /tmp/log.txt 2>&1
.
Wenn Sie möchten, dass mehrere Benutzer dieses Protokoll erhalten, können Sie ein einfügen MAILTO=nameofmailinglist
oben in Ihrer Cron-Datei.
Andere Tipps
Um die Ausgabe per E-Mail an eine andere E-Mail-Adresse zu senden, fügen Sie einfach die Zeile hinzu
MAILTO="user@example.com"
Zur Crontab vor dem Befehl
Die Cron-Zeile ist wie jede andere Unix-Befehlszeile, sodass Sie die Ausgabe an ein anderes Programm umleiten können.Dh.
* * * * * /path/my/command > /my/email/script 2&>1
Dies ist möglicherweise eine unnötige Ergänzung, aber um die Umleitungsbefehle zu qualifizieren:
> Leitet die Standardausgabe um
2 ist ein Bourne-Shell-spezifischer Begriff, der Standardfehler bedeutet
1 ist ein Bourne-Shell-spezifischer Begriff, der Standardausgabe bedeutet
2>&1 bedeutet, dass der Standardfehler auf die Standardausgabe umgeleitet wird
Siehe auch den folgenden nützlichen Artikel Standard-Eingabe- und Ausgabeumleitung
Soweit ich es sehe, haben Sie drei Möglichkeiten:
- Leiten Sie die Ausgabe um:entweder in eine Datei oder an ein Programm, das die Ergebnisse nach Ihren Wünschen per E-Mail sendet
- Verwenden Sie MAILTO in Cron und leiten Sie die E-Mail für alle Ihre Cron-Jobs an eine beliebige andere Einzeladresse um.
- Führen Sie die Umleitung auf Ihrem Mailserver oder Client durch, nachdem Cron sie gesendet hat.