Cronjob – Einrichtung und Verwaltung

Mit einer Cronjob ist es unter Linux-Systemen möglich bestimmte Prozesse zu einer bestimmten Zeit zu wiederholen. Es erfolgt also eine Automatisierung der Aufgaben. Wie eine Cronjob eingerichtet und verwaltet wird, soll euch nachfolgend erklärt werden.


Einrichtung

Um eine Cronjob einzurichten, muss die gleichnamige Datei mit dem Standardeditor geöffnet werden. Dazu wird der Befehl crontab -e verwendet. Sollten noch keine Prozesse oder Tasks eingerichtet worden sein, wird nur eine kurze Beschreibung ausgegeben:

# m h dom mon dow command

Das heißt, dass eine Cronjob immer den oben dargestellten Aufbau besitzt. Zunächst wird dabei angegeben, wann die Cronjob jeweils ausgeführt werden soll. Also

  • m = Minuten (0-59),
  • h = Stunden (0-23),
  • dom = Tage im Monat (1-31),
  • mon = Monate (1-12) und
  • dow = Wochentage (0-7).

Werden nur die Felder Minuten und Stunden benötigt, um die Cronjob beispielsweise immer um 23:00 Uhr auszuführen, können die anderen Angaben mit * deaktiviert werden.

Danach folgt das eigentliche Kommando, welches ausgeführt werden soll. In unserem Fall starten wir einfach mal einen Dienst /etc/init.d/csgo-server-launcher start.

Die komplette Cronjob müsste dementsprechend so aussehen:
0 23 * * * /etc/init.d/csgo-server-launcher start


Weitere Beispiele

Startet den TS3-Server an jedem Samstag um 22:30 Uhr.
30 22 * * 6 /ts3/ts3server_startscript.sh start

Startet jede Minute das Programm.
* * * * * /usr/bin/foo

Startet am 1.1 um 06:00 Uhr das Shellscript.
0 6 1 1 * /usr/local/bin/bar.sh

Eingerichtete Cronjobs


Ausführung in zeitlichen Intervallen

Es ist auch möglich Cronjobs in bestimmten Zeitintervallen auszuführen. Dazu muss vor der eigentlichen Zeitangabe einfach ein / (Slash) gesetzt werden. Für eine Cronjob, die alle 20 Minuten starten soll, muss folgender Befehl genutzt werden:

*/20 * * * * /usr/bin/foo

Es sind aber noch weitere Kriterien für eine genauere Zeitangabe möglich. Im nachfolgenden Beispiel wird die Cronjob alle 4 Stunden zu jeder vollen Stunde ausgeführt:

0 */4 * * * /usr/bin/foo

Wie man sieht, sind Cronjobs zeitlich sehr individuell und genau anpassbar.


Verwaltung

Zugegeben, wirklich viel wird für die Verwaltung von Cronjobs nicht benötigt. Interessant sind aus unserer Sicht nur zwei Befehle:

crontab -l zeigt bereits erstellte Cronjobs an.

crontab -u user1 -l zeigt die Cronjobs eines bestimmten Users an (Login als root erforderlich).