blog.bartlweb - a technologist's external brain

Cronjobs – wiederkehrende Aufgaben unter Linux managen

Cronjobs sind unter Linux das Mittel der Wahl wenn es um automatisierte wiederkehrende Aufgaben geht. Unter Windows nennt sich diese Prinzip "Geplante Aufgaben".

Cronjobs verwalten

Cronjobs werden unter Linux immer für den aktuellen Benutzer verwaltet. Alle als Benutzer angelegte Cronjobs werden auch mit dessen Nutzerrechten ausgeführt.

Der folgende Befehl listet alle für den aktuellen Benutzer angelegten Cronjobs auf:

crontab -l

Um Cronjobs zu verwalten, hilft der folgende Befehl. Dieser öffnet die Konfigurationsdatei im Texteditor vi.

crontab -e

Das Cronjob-Zeitsystem

* * * * * [command]
Minute [0-59] - Stunde [0-23] - Tag [1-31] - Monat [1-12] - Wochentag [0-7 - wobei Sonntag 0 und 7 ist]

Beispiele

jede Stunde

00 */1 * * * [command]

alle 5 Minuten

*/5 * * * * [command]

jede Stunde, zur Minute 10 und 20, an jedem Werktag

10,20 * * 1-5 [command]

Kurzform für gebräuchliche Optionen

[shortform] [command]

@reboot - einmaliges Ausführen beim Start des Rechners
@yearly / @annually - einmal pro Jahr - 0 0 1 1 *
@monthly - einmal pro Monat - 0 0 1 * *
@weekly - einmal pro Woche -  0 0 * * 0
@daily / @midnight - einmal pro Tag - 0 0 * * *
@hourly  - einmal pro Stunde - 0 * * * *

Ausgaben umleiten

Ausgabe und Fehler verwerfen

Im folgenden Beispiel wird die Standardausgabe und die Ausgabe eventueller Fehler verworfen. D.h. Sie erhalten in diesem Fall niemals eine Benachrichtigungs-Mail.

[command] >/dev/null 2>&1

Ausgabe verwerfen

Die Ausgabe des asugeführten Befehls wird verworfen, während Fehler weiterhin per E-Mail zugestellt werden.

[command] >/dev/null

Ausgabe in Datei schreiben

Beachten Sie, dass hierbei die Datei bei jedem Aufruf des Cronjobs überschrieben wird.

[command] > /path/to/file

Ausgabe an Datei anhängen

Ideal um eine Art Logdatei zu erstellen. Bei jedem Aufruf wird die angegebene Datei um die Ausgabe erweitert.

[command] >> /path/to/file

Ausgabe und Fehler in Datei schreiben

Es besteht auch die Möglichkeit neben der Standardausgabe auch noch die produzierten Fehler in die Datei zu schreiben. In diesem Fall funktioniert natürlich aus das Anhängen der Ausgabe an die Datei über den Operator >> um eine Logdatei zu erstellen.

[command] > logfile 2>&1

E-Mail Benachrichtigung

Generell werden Ausgaben der einzelnen Cronjobs immer an die E-Mailadresse des ausführenden Benutzers gesandt. Um die Ausgaben aller Cronjobs an eine bestimmte E-Mailadresse zu senden, setzen Sie folgende Zeile an den Anfang der Crontab-Datei.

MAILTO="admin@domain.com"

Um die Ausgabe eines einzelnen Cronjobs an eine bestimmte E-Mailadresse zu senden, hilft die folgende Zeile:

[command] | mail -s "Subject" admin@domain.com

Beachten Sie, dass im obigen Fall bei jedem Aufruf des Cronjobs, egal ob eine Ausgabe durch das aufgerufene Skript/Program erfolgt, eine E-Mail an die angegebene Adresse gesendet wird.

Möchten Sie nur E-Mails im Fehlerfall erhalten und alle Cronjobs können an die selbe E-Mailadresse senden, ist die folgenden Konfiguration für Sie hilfreich.

MAILTO="admin@domain.com"
 
[command] >/dev/null

Dabei wird die Standardausgabe verworfen und nur Fehlermeldungen ausgegeben. Diese werden an die in MAILTO spezifizierte E-Mailadresse gesendet.

Dieser Artikel hat Dir deinen Tag gerettet?

... und mühevolles Probieren, Recherchieren und damit Stunden an Zeit gespart? Oder einfach nur Dein Problem gelöst?

Dann würde ich mich freuen, wenn Du meine Zeit für die Erstellung dieses Blogartikels mit einer kleinen Anerkennung honorierst:

Zahlung mit PayPal oder Kreditkarte.

Hinweis zur Verwendung

Die Übermittlung einer Zahlung ist eine persönliche Anerkennung Ihrerseits an den Entwickler (Christian Bartl, Privatperson). Eine Zahlung ist nicht zweckgebunden und es ist keine Gegenleistung zu erwarten. Bitte beachten Sie, dass für eine übermittelte Zahlung keine Quittung ausgestellt werden kann.

Über den Autor

Christian Bartl

Christian Bartl Requirements Engineer
& Solution Architect für Online und Mobile

Als Technologie-Enthusiast und begeisterter Programmierer entwickle ich in meiner Freizeit Websites, Software und IT-Lösungen, die mir selbst und anderen den Alltag vereinfachen.

mehr auf christian.bartl.me

Kommentare

Noch kein Kommentar vorhanden.
Sei der Erste! - Ich freue mich über deine Anmerkung, Kritik oder Frage.

Kommentar schreiben

Der hier angegebene Name wird gemeinsam mit deinem Kommentar auf der Website veröffentlicht.

Deine E-Mail-Adresse wird zur einmaligen Benachrichtigung bei Veröffentlichung des Kommentars genutzt.

Benachrichtigung per E-Mail über Antworten auf meinen Kommentar erhalten.

Bitte tippe die Zahlenkombination "8888" ein, nur dann kann ich deinen Kommentar entgegennehmen.

Bitte fülle dieses Feld nicht aus, nur dann kann ich deinen Kommentar entgegennehmen.