Wir alle wissen, dass die Ausgabe von Cron-Jobs auf die richtige Weise verarbeitet werden kann, indem sie in eine Datei umgeleitet wird:
0 * * * * /bin/date >> /var/log/date.log 2>&1
Manchmal sind Administratoren jedoch faul, vergesslich oder ignorant und setzen diese Weiterleitungen nicht ein. In diesem Fall wird die Ausgabe des Jobs per E-Mail an $ MAILTO oder den Benutzer oder Root gesendet. Bei einigen der von mir verwalteten Boxen ist die E-Mail-Funktion deaktiviert, sodass diese Ausgabe in ein schwarzes Loch fließt. Was ich mich wundere, ist, gibt es eine Möglichkeit, cron anzuweisen, Auftragsausgaben zu übernehmen und sie, anstatt sie zu verschicken, irgendwo in eine Catch-All-Protokolldatei zu werfen? Ich verwende Ubuntu (8.04, aber migriere auf 9.04). Es gibt einen Hinweis auf eine solche Lösung in diesem zufälligen Google-Ergebnis , aber ich denke, dass das OP in Bezug auf die Cron-Ausgabe im Vergleich zur Ausgabe von Cron-Jobs verwirrt war.
Ich bin offen für Lösungen, die ein bisschen Scripting oder Hacking beinhalten, aber im Idealfall wäre dies ein Konfigurationsbit, das ich irgendwo setzen könnte. Ich sehe keine Hinweise in man cron
. Vielen Dank!
root: /var/log/cron.log
geht nicht feep.net/sendmail/tutorial/intro/aliases.htmlIch glaube nicht, dass das, wonach Sie fragen, mit Ubuntu (oder einem anderen) Cron tatsächlich möglich ist.
Abgesehen von der Idee von geekmonkeys können Sie $ MAILTO auch auf ein lokales Konto festlegen und die Ausgabe über procmail weiterleiten .
quelle
Habe noch nie von einer solchen Einstellung für Cron gehört, also würde ich den Drehbuchweg einschlagen.
Erstellen Sie einen Cron-Job, um / var / spool / cron / * zu überwachen, und hängen Sie die Umleitung an jeden Job an, der keinen hat.
quelle
Eine andere Möglichkeit wäre, ein Shell-Skript mit dem Namen cron_wrapper oder so zu erstellen und es einfach so machen zu lassen:
Dann brauchen alle Ihre Crontabs nur so etwas:
Hinweis Ich habe diesen Code nicht getestet, es ist nur eine Idee.
quelle
Ich weiß nicht, was der "Standard-Cron" ist. Es gibt viele Cron-Daemons, verschiedene Distributionen verwenden unterschiedliche. Vixie Cron ist am weitesten verbreitet, also haben Sie es wahrscheinlich so gemeint. In einigen Distributionen wäre dies jedoch nicht die Standardeinstellung.
Ich habe die Entwicklung von Dillons cron (dcron) übernommen, dem Standard für Arch Linux. Andere Distributionen verwenden es auch, aber ich weiß nicht, ob es anderswo die Standardeinstellung ist. dcron verfügt über eine Aufrufoption
-M
, mit der Sie angeben können, dass Sie ein benutzerdefiniertes Skript anstelle von sendmail verwenden möchten. Das Skript wird ohne Argumente und mit einigen E-Mail-Headern und der&>
Ausgabe von Cronjobs als stdin aufgerufen. (Wenn keine&>
Ausgabe erfolgt, wird das Skript nicht aufgerufen.)quelle
Warum setzen wir MAILTO = "" nicht in der Crontab eines bestimmten Benutzers? Dadurch wird die Protokollierung von E-Mail-Nachrichten in / var / spool / mail / deaktiviert.
quelle