Aufgabenplanung mit Cronjobs fürs NAS

So funktionieren Cronjobs auf Linux-Systemen

von - 30.10.2014
Ein Cronjob ist eine Zeile in der Datei crontab und so etwas wie ein Termineintrag in einem Terminkalender. Jeder Eintrag besteht aus sieben Angaben, die jeweils durch ein Tabulator-Zeichen getrennt sind, manchmal auch durch Leerzeichen. Hier ein Beispiel:
15 8 22 12 mon root script.sh
crontab: Hier sehen Sie die crontab eines Qnap-NAS, in der 19 Cronjobs eingetragen sind
crontab: Hier sehen Sie die crontab eines Qnap-NAS, in der 19 Cronjobs eingetragen sind.
Das bedeuten die Angaben: Die ersten beiden Zahlen geben Minuten und Stunden an, hier also 8:15 Uhr. Es folgen der Tag des Monats und der Monat, hier der 22. Dezember. Die Monatsangabe kann als Wert zwischen 1 und 12 oder als Name wie jan, feb und so weiter erfolgen.
Es folgt der Wochentag. Zulässige Werte sind 0 bis 7. 0 und 7 sind der Sonntag, 1 ist der Montag und so weiter. Ebenfalls möglich sind Namen wie mon, tue, wed, also die ersten drei Buchstaben der englischen Wochentage.
Schließlich folgt optional der Name des Benutzers, der die Ausführung startet. Am Ende steht das Programm oder das Skript, das zu den definierten Terminen ausgeführt wird.
Cronjobs: Der Terminkalender crontab liegt auf Linux-Systemen normalerweise im Verzeichnis „/etc“ wie hier auf einem Synology-NAS
Cronjobs: Der Terminkalender crontab liegt auf Linux-Systemen normalerweise im Verzeichnis „/etc“ wie hier auf einem Synology-NAS.
Im Beispiel würde also das Shell-Skript script.sh an jedem Montag, den 22. Dezember, um 8:15 Uhr starten. Das ist natürlich unsinnig, denn im Extremfall würde das Skript erst in 28 Jahren aufgerufen werden. Hier kommen die Sterne ins Spiel.
Ein Stern * bedeutet: jeder oder jede. Der Cronjob 0 8 1 * * root script.sh startet an jedem 1. jedes Monats um 8 Uhr, 0 8 * * mon root script.sh an jedem Montag um 8 Uhr. Es lassen sich auch mehrere Zeiten in ein Feld eintragen, getrennt durch ein Komma. So meint folgender Eintrag beispielsweise jeden 1. und 15. eines Monats, 8 Uhr.
0 8 1,15 * * root script.sh
Wenn Sie statt des Kommas einen Bindestrich verwenden, dann geben Sie Zeitspannen an. So bedeutet beispielsweise 0 8 1-15 * * root script.sh: Führe das Skript jeden Tag vom 1. bis zum 15. um 8 Uhr aus. Und schließlich lassen sich auch noch Intervalle mit dem Zeichen / definieren. Um das Kommando alle fünf Stunden auszuführen, schreiben Sie
0 */5 * * * root script.sh
All diese Kommandos lassen sich beliebig kombinieren. Die meisten NAS-Systeme kennen auch Cronjobs wie @reboot root script.sh. Hiermit startet das Skript einmal nach jedem Systemstart.

Cronjobs einrichten

Cronjob editor: Vereinzelt gibt es grafische Bedienoberflächen für Cronjobs wie hier für ein NAS-System von Synology
Cronjob editor: Vereinzelt gibt es grafische Bedienoberflächen für Cronjobs wie hier für ein NAS-System von Synology.
Grafische Bedienoberflächen zur Einrichtung von Cronjobs sind mitunter kompliziert einzurichten. Schneller und einfacher geht es im Textmodus.
Um einen Cronjob etwa auf einem NAS-Server anzulegen, müssen Sie die Datei crontab editieren. Dazu benötigen Sie zunächst einmal einen SSH-Zugang aufs NAS, um auf die Kommandozeilenebene zu gelangen. Dort starten Sie einen Editor und tragen den Cronjob in die crontab ein. Das hört sich komplizierter an, als es ist. Der Artikel „So sichern Sie Daten vom NAS automatisch“ erklärt genau, wie’s geht.
Verwandte Themen