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.allow | Wenn 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.deny | Wenn diese Datei existiert, dürfen Benutzer keine Cronjobs anlegen, wenn sie in dieser Datei aufgeführt sind. |
| /etc/cron.hourly | Scripts oder Links auf Scripts in diesem Ordner werden stündlich ausgeführt |
| /etc/cron.monthly | Scripts oder Links auf Scripts in diesem Ordner werden monatlich ausgeführt |
| /etc/crontab | Hier kann root alle Cronjobs und deren Startzeiten definieren. |
| /etc/cron.weekly | Scripts 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 -l | Anzeigen 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 | Stunde | Tag | Monat | Wochentag | 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 |
| 5 | immer 5 Minuten nach der vollen Stunde |
| */5 | alle 5 Minuten |
| 0,30 | Zu jeder vollen und halben Stunde |
| 0-15 | Zwischen 0 und 15 Minuten nach der vollen Stunde jede Minute |
| 0-15,30 | Kombination 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