Cronjobs sind wiederkehrende Aufgaben, die das System zu einer angegebenen Zeit ausführt. Dafür ist der Cron-Dienst (Daemon) zuständig. Im Fenster-OS wird so etwas geplante Tasks genannt.
systemd timers
Auf allen aktuellen Systemen gibt es zusätzlich systemd-timer: systemctl list-timers
Die anzeigten timer sind Dateien deren symbolische Links im Verzeichnis /etc/systemd/system/timers.target.wants/
liegen.
crontab -e
)./etc
mit Namen wie/etc/cron.daily
/etc/cron.hourly
/etc/cron.mouthly
/etc/cron.weekly
/etc/crontab
. Hier ist zu beachten, dass bei vielen Distributionen keine Pfade angegeben werden. Es müsste eine Zeile PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
über den ersten Aufrufen stehen.
Entweder Verweise (Symlinks) in den oben genannten Verzeichnisse anlegen oder mit dem Befehl crontab -e -u [user]
(wobei die Userangabe nicht verpflichtend ist).
Dann kann man Einträge in der folgenden Form anlegen:
# m h dom mon dow command 5 1 * * * Befehl
die einzelnen Zahlen stehen dabei für folgende Angaben (von vorne nach hinten):
Im Beispiel wird also MeinBefehl um 1:05 an jedem Tag, Monat und Wochentag ausgeführt.
Die Ausführung des Cronjobs wird protokolliert und aufgetretene Fehler werden dem ServerAdmin per mail zugestellt.
Format: # m h dom mon dow user command
#Jedes Jahr am Samstag, den 02.09. um 13:50 Uhr: 50 13 2 9 6 root /Pfad-zum/Script.sh #Jeden zweiten im Monat um 13:50 Uhr: 50 13 2 * * root /Pfad-zum/Script.sh #Jeden Samstag um 13:50 Uhr: 50 13 * * 6 root /Pfad-zum/Script.sh #Jeden Freitag, Samstag und Sonntag um 13:50 Uhr #und um 14:50 Uhr: 50 13,14 * * 5,6,7 root /Pfad-zum/Script.sh #Jeden Samstag im Zehnminutentakt: */10 * * * 6 root /Pfad-zum/Script.sh # alle 3 Stunden: * */3 * * * root /Pfad-zum/Script.sh
Wenn man selbst keinen Server besitzt bzw. administriert und auch keinen Rechner 24h am Tag angeschaltet hat, kann man auch einen der zahlreichen Dienste benutzen.
Hier nur eine kleine Auswahl:
In manchen Umgebungen (Sicherheit!) soll Cron nur für bestimmte Benutzer ausführbar sein. Dies lässt sich durch die Datei /etc/cron.allow
realisieren. Dort trägt man die Benutzer (root, …) ein denen cron erlaubt sein soll. Oft wird dies jedoch auch über die Mitgliedschaft in einer Gruppe geregelt.
Der umgekehrte Weg (manche Benutzer von Cron ausschließen) funktioniert mit /etc/cron.deny
.