Cron wird zum Aufrufen von wiederkehrenden Jobs uner Linux genutzt.
Dazu werden in der crontab Tabelle Einträge gemacht die folgendermaßen aussehen:
* * * * * auszuführender Befehl
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ └──── Wochentag (0-7, Sonntag ist 0 oder 7)
│ │ │ └────── Monat (1-12)
│ │ └──────── Tag (1-31)
│ └────────── Stunde (0-23)
└──────────── Minute (0-59)
Dabei kann man an jeder Stelle eines der folgenden Zeichen(folgen) verwenden:
* = Ausführung immer (zu jeder…)
*/n = Ausführung aller n
x,y,z = Ausführung um/am x, y und z
So bedeutet ein */10 an der Minuten-Stelle (an der ersten Stelle): „Alle 10 Minuten“
Bearbeiten
Um die crontab (für den gerade aktiven Benutzer ) zu bearbeiten benötigt man den Befehl:
crontab -e
Beispiele
Oft verwendete Einträge habe ich nun hier aufgelistet:
Jede Nacht um 3:34 Uhr morgens das Backup machen:
34 3 * * * /usr/bin/backup.sh
Alle 10 Minuten einen Prozess überwachen:
*/10 * * * * /usr/bin/watchdog.sh
Jede zweite Stunde um 5 nach
5 */2 * * * /usr/bin/watchdog.sh
Täglich um 8:00 und um 17:00 Uhr einen Preis checken:
0 8,17 * * * /usr/bin/check_price.sh
Einmal im Jahr genau am 31.12. um 23:55 Uhr, eine Mail versenden:
55 23 31 12 * /usr/bin/frohes_neues_jahr_mail.sh
Ausgabe managen
Ausgabe in Logfile umleiten
*/10 * * * * /usr/bin/script.sh >>/var/log/cron/script.log 2>&1
Ausgabe verwerfen
*/10 * * * * /usr/bin/script.sh
>/dev/null 2>&1
Ausgabe täglich in eine eigene Datei umleiten:
*/10 * * * * /usr/bin/script.sh >>/var/log/cron/script_$(date +\%Y\%m\%d).log