System- und Serveradministratoren benutzen Cronjobs, um auf einem PC oder Server zu festgelegten Zeiten Befehle ablaufen zu lassen. Geeignet sind Cronjobs zum Besipiel, um regelmäßig die Datenbank einer WordPress-Installation zu sichern.
Inhalt
Cronjobs und Crontabs
Cronjobs werden in Crontabs gespeichert. Um eine Crontab zu öffnen, gehst du ins Terminal und gibst diesen Befehl ein:
crontab -e
Falls der Nano-Editor noch nie benutzt wurde, erhältst du nun eine Auswahl verschiedener Editoren (von deren Existenz die wenigsten wissen). Nimm den Nano. Dazu muss die Zahl im Terminal eingetippt werden, die neben dem Nano-Editor steht. Wer schonmal Nano benutzt hat, wird nach der Eingabe von crontab -e automatisch auf die richtige Seite weitergeleitet:
Crontab im Nano-Editor bearbeiten
Unten ist die Crontab zu sehen. Sie ist in 6 Spalten organisiert. Wie man sieht, ist noch kein Cronjob in der Crontab eingetragen. Das Doppelkreuz # ist noch nicht vor dem Crontab entfernt.
Das Crontab-Format
Statt den Werten m (minute) h (hour) dom (day of month) mon (month) dow (day of week) und command (Befehl) wird nun Folgendes eingetragen, von links nach rechts:
- Minute – Zahl zwischen 0 und 59
- Stunde – Zahl zwischen 0 und 23
- Tag des Monats – Zahl zwischen 1 und 31
- Monat – Zahl zwischen 1 und 12
- Tag der Woche – Zahl zwischen 0 und 6 (Sonntag ist 0)
- Der auszuführende Befehl
Crontab-Befehle eingeben
Die ganzen sechs Werte muss man nicht immer eingeben, um einen Cronjob einzurichten. Angenommen, das Backup-Script für die WordPress-Installation soll jede Nacht um drei Uhr durchlaufen. Dann gibt man Folgendes ein:
0 3 * * * /usr/bin/meinbackupscript.sh
Die drei Sternchen sind Platzhalter für die nicht festgelegten Werte. Das Backup wird jetzt jeden Tag durchgeführt, und nicht nur an einen bestimmten Wochentag oder Tag im Monat. Anmerkung: Das .sh- Script muss im Verzeichnis /usr/bin schon vorliegen. In der Crontab steht nur, wann etwas ausgeführt wird, und wie es heißt.
Crontab als Wecker einrichten
Echte Rootserver- Admins beginnen jeden Tag um 8 Uhr 15, geweckt von einem Cronjob. Man kann ja auch Audiodateien über ein .sh-script aufrufen.
15 8 * * * * /usr/bin/meinsoundscript.sh
Verknüpfung von Werten im Crontab
Ach nein. Jeden Tag um 8 Uhr 15 aufstehen muss ja nicht sein! Mit einem Komma können verschiedene Werte verknüpft werden. So arbeitet der Wecker nur am Montag und Mittwoch:
15 8 * * * 1,4 /usr/bin/meinsoundscript.sh
Cronjobs Übungsserver
Das Einrichten von Cronjobs übt man am besten erstmal auf dem heimischen LAMP. So wird der LAMP installiert.