Cronjobs unter Suse

cron

Mittels Cronjobs werden bestimmte Systemaufgaben zeitgesteuert ausgeführt. Der entsprechende Dienst heißt Cron und wird mit dem System automatisch gestartet.

Wichtige Dateien und Verzeichnisse:

/etc/cron.allowWenn diese Datei existiert, dürfen nur Benutzer Cronjobs anlegen, wenn sie in dieser Datei aufgeführt sind.
/etc/cron.d Konfigurationen mit eigenen Startzeiten und individueller UserID möglich.
/etc/cron.daily Scripts oder Links auf Scripts in diesem Ordner werden täglich ausgeführt
/etc/cron.denyWenn diese Datei existiert, dürfen Benutzer keine Cronjobs anlegen, wenn sie in dieser Datei aufgeführt sind.  
/etc/cron.hourlyScripts oder Links auf Scripts in diesem Ordner werden stündlich ausgeführt
/etc/cron.monthlyScripts oder Links auf Scripts in diesem Ordner werden monatlich ausgeführt
/etc/crontabHier kann root alle Cronjobs und deren Startzeiten definieren.
/etc/cron.weeklyScripts oder Links auf Scripts in diesem Ordner werden wöchentlich ausgeführt
/var/spool/cron/Speicherort für die Crontabs der Benutzer. Hier keine Spalte für die UserID da dieser aus dem Dateinamen hervorgeht.

Wichtige Befehle

Cron steuern/etc/init.d/cron {start|stop|restart}
crontab -lAnzeigen der Cronjobs des angemeldeten Users 
crontab -e

Editieren der eigenen Cronjobs 

crontab -u <Name>
Hierdurch hat root die Möglichkeit auf die Crontabelle von <Name> zuzugreifen.

 Wichtig hierbei ist, dass crontab -e ein Befehl ist und nicht die Datei /etc/crontab in der die cronjobs für root liegen.

Aufbau Configurationsdatei

Minute StundeTag MonatWochentag Username Befehl
0-59 0-23 1-31 1-12 0-7 (So->0 und 7) UID unter welcher der Prozess laufen soll. Nicht
erforderlich unter /var/spool/cron/
Direkter Befehl oder
Verweis auf ein Script.  

Soll ein Befehl eine Ausgabe auf einer Console machen muss die Ausgabe mittels  >/dev/pts/0 an die entsprechende Console geschickt werden. Die Nummer der Console muss zuerst mit ps aux herausgefunden werden.  Eine Sonderform ist die Console xconsole, welche nur Ausgaben für den Admin anzeigt. Damit werden alle Ausgaben auf die xconsole gelenkt. Diese wird mittels xconsole & gestartet.

Ein "-" am Anfang einer Configzeile darf nur von root verwendet werden. Damit werden sämtliche Logeinträge ausgeschaltet.

Zeitangaben am Minutenbeispiel:

* Zu jeder Minute
immer 5 Minuten nach der vollen Stunde 
*/5alle 5 Minuten
0,30Zu jeder vollen und halben Stunde
0-15Zwischen 0 und 15 Minuten nach der vollen Stunde jede Minute
0-15,30Kombination können mit Komma getrennt werden.

Eine Besonderheit ist die Angabe des Tages. Hier stehen zwei Möglichkeiten zur Verfügung. Sie können den Tag des Monats und den Wochentag angeben. Werden beide Informationen angegeben, dann wird der Job zu dem Zeitpunkt ausgeführt wenn mindestens eine von den Angaben zutrifft. Der folgende Befehl wird also nicht nur am Freitag, den 13. ausgeführt, sondern er wird an jedem 13. Tag des Monats und an jedem Freitag ausgeführt.

00 12 13 * 5 freitag_der_13.sh