| FOTO | AUTO | EDV | AUDIO |

Programme mit cron starten

Das Werkzeug cron verwendet zwei verschiedene Konfigurationsdateien: Die System-crontab und die Benutzer-crontab. Der einzige Unterschied zwischen beiden Formaten ist das sechste Feld. In der System-crontab gibt das sechste Feld das Konto an, unter dem ein Kommando läuft. Aus der System-crontab können daher Kommandos unter beliebigen Konten gestartet werden. In der Benutzer-crontab gibt das sechste Feld das auszuführende Kommando an. Alle Kommandos laufen unter dem Konto, unter dem die crontab erstellt wurde (ein wichtiges Sicherheitsmerkmal).

Achtung:
Benutzer können mit Benutzer-crontabs ohne root-Rechte Befehle terminieren. Die Kommandos in Benutzer-crontabs laufen unter dem Benutzer, der die crontab erstellt hat.
Der Benutzer root kann, wie jeder andere Benutzer, eine Benutzer-crontab besitzen. Die Benutzer-crontab von root ist nicht mit der Datei /etc/crontab, der System-crontab, zu verwechseln. Normalerweise besitzt root, wegen der Existenz der System-crontab, keine eigene Benutzer-crontab.

Beispiele

crontab -l listet die Cron jobs des aktuellen Benutzers auf
crontab -u paul -l listet alle Cron jobs von User paul
crontab -e zum erstellen/modifizieren von Cronjobs
crontab -u paul -e zum erstellen/modifizieren von Cronjobs des Users paul (nur als root)
crontab -r Löscht alle Cron Jobs von aktuellen Benutzer
crontab -u paul -r Löscht alle Cron Jobs von paul

Die Syntax

# For details see man 4 crontabs
 
 Example of job definition:
 .---------------- minute (0 - 59)
 |  .------------- hour (0 - 23)
 |  |  .---------- day of month (1 - 31)
 |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
 |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
 |  |  |  |  |
 *  *  *  *  * user-name command to be executed
Das bedeutet:
Ein Cron Job besteht aus diesen sieben Einträgen:

1 2 3 4 5 6 7
Minute Stunde Tag Monat Wochentag Benutzer auszuführendes Kommando
0 - 59
oder *
0-23
oder *
0-31
oder *
1-12
jan-dec
oder *
0-6
sun-sat
oder *
Benutzername Kommando
Ein Feld mit Sternchen(*), steht immer für „alle“
Weitere Zeitangaben
1,2,5,9 jede erste, zweite, fünfte, und neunte (Minute, Stunde, Monat…)
0-4,8-12 alle (Minuten, Stunden, Monate,…) on 0 bis 4 und von 8 bis 12
*/5 jede fünfte (Minute, Stunde, Monet, …)
1-9/2 ist das gleiche wie 1,3,5,7,9

Zwei Beispiele:
führe /usr/local/ispconfig/server/server.sh jede Minute aus:

  * * * * * /usr/local/ispconfig/server/server.sh

führe /usr/local/ispconfig/server/cron_daily.sh einmal pro Tag um 00:30h aus:

30 00 * * * /usr/local/ispconfig/server/cron_daily.sh

Alle 5 Minuten einen Job ausführen

0-59/5 * * * * /dir/jobname