Das, was man unter "Aufgaben, die in regelmäßigen Abständen zu einem bestimmten Zeitpunkt erledigt werden" in Linux und Unix versteht, ist genau das: crontab
. Es ist so beruhigend, dass das System automatisch wiederkehrende Aufgaben für mich erledigt! Aber wenn man es nicht richtig versteht, kann es auch ganz schön nervig sein. Basierend auf meiner Erfahrung im Umgang mit crontab
möchte ich meine Erkenntnisse darüber teilen, was crontab
ist, wie man es nutzt und einige hilfreiche Tipps.
Was ist der Sinn von crontab?
crontab
ist einfach gesagt ein Werkzeug, um in Linux und Unix-Systemen "Aufgaben automatisch und regelmäßig auszuführen". Mit dieser Einstellung kann ich alltägliche, wiederkehrende und lästige Aufgaben einfach erledigen. Sobald ich es einmal konfiguriert habe, erledigt es automatisiert die Aufgaben, sodass sich das System wie mein persönlicher Assistent anfühlt.
Die magische Komponente, die all dies möglich macht, ist der cron-Dämon. Der cron-Dämon überprüft die Inhalte der crontab
-Datei und führt die Befehle zur angegebenen Zeit aus. Das ist der Grund, warum ich crontab
so gerne benutze.
Was sind die Befehle von crontab?
Es gibt einige nützliche Befehle für crontab
. Wenn man diese kennt, kann man nicht nur Zeit sparen, sondern auch einfach Einstellungen überprüfen und ändern.
- crontab -e : Ein Befehl, um die
crontab
-Datei zu öffnen und Aufgaben hinzuzufügen oder zu ändern. - crontab -l : Zeigt die Inhalte der
crontab
-Datei des aktuellen Benutzers an. - crontab -r : Löscht die
crontab
-Datei des aktuellen Benutzers. (Vorsichtig verwenden!)
Wie sieht das Format der crontab-Datei aus?
Die crontab
-Datei besteht aus einer Zeile für jede Aufgabe, wobei jede Zeile aus fünf Zeitfeldern und einem Befehl besteht. Wenn man das erste Mal auf die Felder schaut, fragt man sich vielleicht, was das bedeutet, aber es ist überraschend einfach, wenn man es Stück für Stück betrachtet.
* * * * * /path/to/command
- - - - -
| | | | +----- Wochentag (0 - 7) (Sonntag ist 0 oder 7)
| | | +------- Monat (1 - 12)
| | +--------- Tag (1 - 31)
| +----------- Stunde (0 - 23)
+------------- Minute (0 - 59)
Jedes Feld kann Zahlen oder *
enthalten, wobei *
für alle Werte steht. Zum Beispiel bedeutet * * * * *
"jede Minute, jede Stunde, jeden Tag, jeden Monat, jeden Wochentag ausführen". Kurz gesagt, es wird jede Minute ausgeführt. Durch entsprechende Anwendung kann man sehr vielseitige Zeitpläne erstellen.
Beispiel: Aufgabe alle 5 Minuten ausführen mit crontab
Nehmen wir an, es gibt einen Befehl wie */5 * * * * /path/to/myscript.sh
. Diese Einstellung bedeutet, dass die Skriptdatei myscript.sh
alle 5 Minuten ausgeführt wird.
*/5
: alle 5 Minuten*
: steht für alle Stunden*
: steht für jeden Tag*
: steht für jeden Monat*
: steht für jeden Wochentag
Das bedeutet, dass das Skript rund um die Uhr alle 5 Minuten ausgeführt wird. Es wurde so eingestellt, dass es regelmäßig läuft, ohne dass ich daran denken muss, was sehr praktisch ist!

Verschiedene Anwendungsmöglichkeiten
Je nach Situation kann crontab
angepasst werden. Lassen Sie uns durch einige Beispiele sehen, wie man es verwenden kann.
- Skripte jede Stunde ausführen
0 * * * * /path/to/script.sh
Führt das Skript jede volle Stunde zur Minute 0 aus. Zum Beispiel 12:00, 13:00, 14:00… - Täglich um 3 Uhr morgens Backup ausführen
0 3 * * * /path/to/backup.sh
Wenn man täglich um 3 Uhr ein Backup erstellt, könnte das die Nachtschichten reduzieren. - Am 1. und 15. Tag jedes Monats um 2 Uhr ausführen
0 2 1,15 * * /path/to/script.sh
Es ist auch gut, wichtige Aufgaben am Anfang und in der Mitte des Monats regelmäßig auszuführen. - Nur am Wochenende ausführen
30 8 * * 6,7 /path/to/weekend_script.sh
Diese Einstellung führt das Skript jeden Samstag und Sonntag um 8:30 Uhr aus.
Wichtige Punkte beim Einrichten von crontab
Die crontab
-Aufgaben in Linux behalten ihre Einstellungen sogar nach einem Systemneustart. Aber es gibt einen Punkt, auf den man achten sollte: Wenn eine geplante Aufgabe während der Zeit, in der das System ausgeschaltet ist, ausgeführt wird, wird sie nicht ausgeführt. Zum Beispiel, wenn ich eine Aufgabe für 15 Uhr plane, das System aber erst um 16 Uhr eingeschaltet wird, dann wird diese Aufgabe einfach übersprungen.
Um dieses Problem zu beheben, kann man einen Freund namens anacron verwenden. anacron ist ein Werkzeug, das "verpasste Aufgaben" unabhängig vom Systemstatus ausführt. Es ergänzt die Beschränkungen von crontab
und ist nützlich, wenn Aufgaben unbedingt in einem bestimmten Intervall ausgeführt werden müssen.
Wenn ich crontab
richtig nutze, kann es mir enorm helfen. Durch die Automatisierung wichtiger Aufgaben mithilfe von Zeitplänen kann ich nicht nur Zeit sparen, sondern auch Fehler vermeiden. Sicher, es kann anfangs aufgrund des Formats schwierig erscheinen, aber sobald man sich daran gewöhnt hat, wartet eine unschätzbare Bequemlichkeit. Was hält Sie davon ab, in die Welt von crontab
einzutauchen?
Add a New Comment