Einführung
Unter Linux ist die Automatisierung regelmäßig wiederkehrender Aufgaben für die Systemwartung unerlässlich. Ob tägliche Backups, das Löschen temporärer Dateien oder das Erstellen wöchentlicher Berichte: Diese Aufgaben übernimmt ein Systemprogramm namens Cron.
Cron ist ein strikt zeitbasierter Job-Scheduler. Er verwendet eine bestimmte Konfigurationssyntax, um genau festzulegen, wann Befehle ausgeführt werden. Die Konfigurationstabelle wird häufig als „Crontab“ bezeichnet.
Cron ist seit Jahrzehnten Bestandteil der Unix-Kultur. Lange bevor es moderne Workflow-Plattformen und Cloud-Scheduler gab, nutzten Administratoren cron, um Backups, Bereinigungsaufgaben, Berichte und Wartungsaufgaben zu vorhersehbaren Zeiten auszuführen.
Ein Crontab-Eintrag wie 0 2 * * * kann zunächst verwirrend wirken. In diesem Labor lernen Sie, diese Syntax zu interpretieren und selbst zu schreiben. Sie werden:
- Die System-Crontab untersuchen: Die globale Cron-Konfigurationsdatei anzeigen.
- Die Syntax entschlüsseln: Die 5 Zeit- und Datumsfelder verstehen.
- Einen Zeitplan erstellen: Einen gültigen Cron-Ausdruck für eine tägliche Aufgabe formulieren.
Die System-Crontab anzeigen
Eine schnelle Möglichkeit, die Cron-Syntax zu verstehen, besteht darin, die systemweite Konfigurationsdatei /etc/crontab anzusehen. Diese Datei enthält normalerweise eine hilfreiche Kopfzeile, die den Aufbau der Felder erklärt.
Die Datei dient sowohl als echte Konfigurationsdatei als auch als Referenz zum Lernen. Viele Linux-Systeme enthalten hier Kommentare, weil die Cron-Syntax kompakt und leistungsfähig ist und leicht falsch gelesen werden kann, solange die Reihenfolge der Felder noch nicht vertraut ist.
Führen Sie den folgenden Befehl aus, um die Datei anzuzeigen:
cat /etc/crontab
Achten Sie in der Ausgabe auf den Abschnitt Example of job definition (die Zeilen können sich je nach Distribution geringfügig unterscheiden):
## .---------------- minute (0 - 59)
## | .------------- hour (0 - 23)
## | | .---------- day of month (1 - 31)
## | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
## | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
## | | | | |
## * * * * * user-name command to be executed
Das Diagramm zeigt: Jeder Cron-Zeitplan besteht aus 5 Feldern, gefolgt von dem auszuführenden Befehl:
- Minute (0–59)
- Stunde (0–23, 24-Stunden-Format)
- Tag des Monats (1–31)
- Monat (1–12)
- Wochentag (0–7; sowohl 0 als auch 7 stehen für Sonntag)
Das Sternchen * ist ein Platzhalter und bedeutet „jeder“ beziehungsweise „jede“. Ein * im Feld für den Monat bedeutet beispielsweise „jeden Monat“.
Cron-Ausdrücke sind kompakt, weil jedes Feld den Zeitplan weiter einschränkt. Zusammen beschreiben die Felder einen sich wiederholenden Zeitpunkt. Eine der wichtigsten Gewohnheiten am Anfang besteht darin, die Felder von links nach rechts als Minute, Stunde, Tag, Monat und Wochentag zu lesen.
Beispiel: 17 * * * * bedeutet: „In jeder Stunde, an jedem Tag bei Minute 17.“
Eine Syntaxdatei vorbereiten
Nachdem Sie nun die Struktur kennen, üben Sie das Schreiben eines Eintrags.
Sie erstellen eine Textdatei, um Ihren Cron-Ausdruck zu formulieren. Das ist eine gute Vorgehensweise, bevor Sie ihn in den tatsächlichen System-Scheduler übernehmen.
Dieser Vorbereitungsschritt ist wichtig, weil ein Cron-Eintrag zwar nur aus einfachem Text besteht, nach der Installation aber reale Auswirkungen hat. Wenn Sie den Ausdruck zunächst separat schreiben, können Sie über den Zeitplan nachdenken, bevor Sie ihn automatisieren.
Stellen Sie sicher, dass Sie sich in Ihrem Projektordner befinden:
cd ~/project
Erstellen Sie eine leere Datei mit dem Namen cron_syntax.txt:
touch cron_syntax.txt
Überprüfen Sie, ob die Datei vorhanden ist:
ls -l cron_syntax.txt
Eine Syntax für einen täglichen Zeitplan schreiben
Ihre Aufgabe besteht darin, einen Cron-Ausdruck für eine Aufgabe zu erstellen, die „jeden Tag um 2:00 Uhr morgens“ ausgeführt werden soll.
Zerlegen wir die Anforderung in die 5 Felder:
- Minute: Die Ausführung soll genau um 2:00 Uhr erfolgen. Das ist die 0. Minute. Wert:
0. - Stunde: Die Ausführung soll um 2 Uhr morgens erfolgen (24-Stunden-Format). Wert:
2. - Tag des Monats: Die Ausführung soll an jedem Tag des Monats erfolgen. Wert:
*. - Monat: Die Ausführung soll in jedem Monat des Jahres erfolgen. Wert:
*. - Wochentag: Die Ausführung soll unabhängig vom Wochentag erfolgen. Wert:
*.
Zusammen ergibt sich der Ausdruck: 0 2 * * *.
Hängen Sie diese Syntax an Ihre Datei an:
echo "0 2 * * *" >> cron_syntax.txt
Überprüfen Sie Ihren Eintrag:
cat cron_syntax.txt
Die Syntax 0 2 * * * teilt dem System mit: „Wenn die Minute 0 UND die Stunde 2 ist, führe den Befehl aus.“
Behalten Sie dieses mentale Modell im Kopf: Cron vergleicht die aktuelle Zeit mit allen fünf Feldern. Wenn die aktuelle Zeit dem Muster entspricht, startet cron den Job.
Zusammenfassung
In diesem Labor haben Sie die Grundlagen der Zeitplanung mit cron kennengelernt:
- Systemkonfiguration: Sie haben
/etc/crontabuntersucht und den standardmäßigen Aufbau gesehen. - Feldstruktur: Sie haben die 5 Felder identifiziert: Minute, Stunde, Tag des Monats, Monat und Wochentag.
- Ausdrücke schreiben: Sie haben erfolgreich eine Syntax für eine tägliche Aufgabe erstellt (
0 2 * * *).
Das Verständnis dieser Syntax ist entscheidend, um beliebige Routineaufgaben in einer Linux-Umgebung zu automatisieren.



