Linux Cronjobs mit Crontab einrichten
Bei Cronjobs handelt es sich um einen Dienst, der mit dem Windows Taskplaner/Taskmanager verglichen werden kann. Mit einem Cronjob können Anwendungen zu einer vorgegebenen Zeit ausgeführt werden. Bekanntes Verwendungsbeispiel sind beispielsweise tägliche Backups oder sonstige Abläufe, die sich immer wiederholen.
In Linux erstellt man einen Cronjob entweder über ein Programm beispielsweise KCron oder über die Shell. Die Erstellung über die Shell ist eindeutig bequemer und schneller. Um einen Cronjob zu erstellen muss zuerst das crontab aufgerufen werden. Das geht ganz einfach über den Befehl crontab.
Nach der Eingabe sollte ein kleiner Text erscheinen. Hier werden die Parameter angezeigt mit denen das Crontab bedient werden kann.
Da wir in unserem Beispiel ein Crontab erstellen wollen müssen wir die Liste mit den derzeiten Cronjobs öffnen, hierzu verwenden wir den Befehl crontab -e.
Sollten noch keine Cronjobs erstellt worden sein ist das Dokument leer. Kommen wir zum Aufbau eines Cronjobs.
Feld | Erlaubte werte |
Minute | 0-59 |
Stunde | 0-23 |
Tag | 1-31 |
Monat | 1-12 |
Tag der Woche | 0-7 ( 0 – 7 ist Sonntag ) |
Beispiel: Eine Shell Anwendung soll jeden Tag um 01:00 nachts ausgeführt werden
00 01 * * * /usr/lcoal/server/backup.sh > /dev/null 2>> /var/log/cj.log
Zuanfang geben wir wie oben beschrieben die Startzeit an. Anschließend folgt der Pfad der Shellanwendung die gestartet werden soll. Um bessere Kontrolle und über den Cronjob zu haben erstellen wir eine Logdatei indem bei jeder Ausführung des Cronjobs ein Eintrag von der Operation vorgenommen wird. Hierzu legen wir die Logdatei cj.log im Verzeichnis /var/log/ an.
Neben der manuellen Eingabe des Startpunktes kann auch noch auf 8 spezielle Bedingungen zurückgegriffen werden.
Bei den Bedingungen handelt es sich um voreingestellt Startpunkte.
Befehl | Anweisung |
@reboot | Cronjob startet bei starten des Betriebssystems |
@yearly | Cronjob startet einmal im Jahr |
@annually | Cronjob startet einmal im Jahr |
@monthly | Cronjob startet jeden Monat |
@weekly | Cronjob startet jede Woche |
@daily | Cronjob startet jeden Tag |
@midnight | Cronjob startet startet einmal am Tag |
@hourly | Cronjob startet jede Stunde |