Zum Beispiel kann ich stderr
ein Skript folgendermaßen protokollieren :
* * * * * run_script.sh > /var/log.txt 2>&1
Aber ich möchte stderr
alle Skripte in meiner crontab protokollieren . Ich kann > /var/log.txt 2>&1
an alle Skripte anhängen , aber es ist nicht gut, wenn ich Hunderte von Skripten habe cron
. Gibt es eine andere, einfachere Möglichkeit, dies zu tun?
quelle
Da es lokale E-Mails verwendet, müssen Sie nichts einrichten oder mailx einfach installieren, wenn es nicht bereits vorhanden ist. Cron sendet Ihnen die Ausgabe, Sie können die E-Mail in einer Datei speichern und von dort aus viele Dinge tun. Der Versuch, die Funktionsweise von cron an Ihre Bedürfnisse anzupassen, ist nicht der richtige Weg. Wenn Sie nicht der Meinung sind, patchen Sie cron und erstellen Sie es neu. Nennen Sie es my_cron und verwenden Sie es anstelle von cron. Und seien Sie bereit, Ihr my_cron irgendwann auf dem neuesten Stand zu halten und es häufig neu zu erstellen.
Fügen Sie dies zu Beginn all Ihrer Skripte hinzu, um alles zu protokollieren und beim ersten Fehler zu stoppen
quelle
> /var/log/YOUR_LOG_FILE 2>&1
dh leiten Sie zuerst stdout zu einer Datei um und leiten Sie dann stderr zu stdout um (was jetzt auf die Datei zeigt).Das Skript von Ryan Ye unter /programming//a/7145618/20774 ist ebenfalls nützlich, obwohl es sowohl stdout als auch stderr ausführt.
quelle