So behältst du deine Cron-Jobs unter Kontrolle

Web Developer & DesignerKategorie
3 min lesen
Wolf-Dieter Fiege

Der Cron-Dienst ist für Server-Administratoren unverzichtbar. Er ermöglicht dir die Automatisierung von Wartungsaufgaben, wie z.B. die Archivierung von Protokolldateien oder das Entfernen temporärer Daten. Ob eine Aufgabe jedoch tatsächlich korrekt vom Cron-Daemon ausgeführt wurde, wird in der Praxis häufig erst viel zu spät festgestellt. Doch mit wenigen Tricks behältst du deinen Cron-Jobs unter Kontrolle. Lass dich direkt per E-Mail informieren, wenn ein Fehler bei der Cron-Verarbeitung auftritt. Wir zeigen dir, wie es geht.

Wie du Cron-Ausgaben an eine E-Mail-Adresse verschickst

In den Standardeinstellungen des Cron-Daemon ist bereits festgelegt, dass der Eigentümer einer Crontab-Datei die Ausgaben des Cron-Daemon per E-Mail erhält. Nur leider gehen diese Nachrichten nur an das Postfach des lokalen Benutzers auf dem Server, der auch ein fiktiver Benutzer oder der administrativen Standardbenutzer „root“ sein kann.

Du kannst die Nachrichten der verschiedenen Benutzer zunächst zentral auf ein lokales Postfach bündeln. Füge dafür im System die Zeile root: account-name in die Datei /usr/lib/asliases ein (für Debian ist es die Datei /etc/aliases).

Wenn du allerdings, so wie ich, nicht täglich einen Blick in die lokale E-Mail-Datei auf deinem Server werfen möchtest, läufst du Gefahr, kritische Fehler nicht rechtzeitig zu bemerken.

Du solltest dir alle Fehlermeldungen direkt an deine E-Mail-Adresse weiterleiten lassen. Die Benachrichtigung erfolgt damit unabhängig vom Besitzer der Cron-Tabelle.

Du musst dafür lediglich die Zeile MAILTO=“empfänger@adresse.de“ im Crontab ergänzen. Um die neue Adresse zu aktualisieren, bestätige den Vorgang mit der Eingabe newaliases über die Konsole.

Achtung: Mit dem gleichen Befehl - ohne Angabe der E-Mail-Adresse (MAILTO=““) - lässt sich die Benachrichtigung auch ganz abschalten.

So leitest du ausschließlich Fehlermeldungen an deine E-Mail-Adresse weiter

Um das Postfach auch bei einer Flut an Meldungen übersichtlich zu halten, kannst du über eine Einstellung festlegen, dass ausschließlich Fehlermeldungen zu ausgeführten Jobs an dich verschickt werden. Dies erreichst du, indem du Standardausgaben ohne Fehler in ein Logfile schreiben lässt oder ganz einfach nach >/dev/null umleitest. Durch den Ausschluss werden nur noch Fehlermeldungen per E-Mail verschickt. Dieser Befehl funktioniert auch für den Versand der Ausgaben an das lokale E-Mail-Postfach auf dem Server.

Achtung: Mit dem Befehl [cronjob] > /dev/null 2>&1 leitest du sowohl Standard- als auch Fehlerausgaben (Datenkanal 1 und 2) weiter.

Kombiniere diese beiden Befehle nun, indem du dir ausschließlich Fehlermeldungen an deine direkte E-Mail-Adresse schicken lässt. Dazu musst du im Cron-Job oberhalb der Befehle die MAILTO=““ Angabe ergänzen. Für jeden Job lässt sich außerdem die Standardausgabe ins Nirvana leiten:

MAILTO=“ empfänger@adresse.de”

[cronjob] > /dev/null

[zweiter job] > /dev/null

[dritter job] > /dev/null

Abbildung - Cron-Jobs unter Kontrolle

Wenn du die Cron-Jobs so unterscheiden möchtest, dass zum einen alle Ausgaben angezeigt werden, während du für andere Tabellen gar keine Ausgabe erhältst, nutzen du dafür allein die MAILTO=““ Ergänzung und unterscheidest rein nach der Art des Jobs:

MAILTO=“empfänger@adresse.de”

***[cronjob]

*** [zweiter job]

*** [dritter job]

MAILTO=“”

*** [vierter job]

*** [fünfter job]

*** [sechster job]

Die sucht den passenden Server für deine Ansprüche? Dann schau mal bei GoDaddy nach.

Bildnachweis: Fotolia, Lizenz: GoDaddy