Dieser Artikel gilt eher als Erinnerung für mich selber, aber vielleicht hilft er auch anderen… Die crontab zu editieren ist nicht sonderlich wild und es gibt schon massig Infos dazu im Internet, dennoch bin ich es leid immer speziell nach meinen Systemen zu suchen. Ich selber greife auf vier verschiedene Systeme zu:
- QNAP-NAS
- Synology-NAS
- AIX
- Webserver (Linux-Debian)
AIX / Debian
AIX bzw. Debian sind immer die Systeme, die alles über den Haufen werfen oder mich so verwirren, denn hier ist es so easy… Es gibt vorab verschiedene Wege die crontab zu editieren, der geläufigste ist wohl
crontab -e
Dieser Befehl funktioniert unter AIX und Dedian wunderbar. Der Editor ist dann im Regelfall vi, allerdings speichert man dann mit der Option „ZZ“ und nicht mit „wq“. Es sollte zwar m.E. das selbe bewirken, aber unter AIX funktioniert „wq“ nicht, allerdings „ZZ“.
Das war es schon, mit
crontab -l
kann man sich die aktuell aktive crontab für den angemeldeten Benutzer ansehen.
QNAP-NAS
Bei der QNAP-NAS können wir tatsächlich mit „crontab -e“ editieren, allerdings wird die Jobliste nicht aktualisiert. Es werden im Pfad /var/spool/cron/crontab lediglich temporäre Dateien angelegt… Deshalb kopiere ich mir die aktuelle crontab temporär weg, editiere diese und dann wird sie als aktuelle crontab-Datei eingelesen:
crontab -l > /tmp/crontab.tmp vi /tmp/crontab.tmp crontab /tmp/crontab.tmp /etc/init.d/crond.sh restart
Das war es schon 😉
Synology-NAS
Synology macht es vom Prinzip her auch simpel, aber wieder ein komplett neues Verfahren. Hier wird direkt die Datei /etc/crontab editiert. Dabei ist wichtig, dass nur der root-User die Datei editieren kann.
Also muss der root-User die genannte Datei editieren und dann den cron-Daemon neu starten
vi /etc/crontab /usr/syno/etc/rc.d/S04crond.sh stop /usr/syno/etc/rc.d/S04crond.sh start
Auch hier sind wir dann vom Prinzip her durch… Aber es ist wichtig zu wissen, dass der Aufbau der Crontan etwas abweicht:
#minute hour mday month wday who command | | | | | | | | | | | | | +--Programm oder Script | | | | | +----------user, der Ausführung startet | | | | +------------------Wochentag (0-7 oder Namen) | | | | 0 & 7 stehen für Sonntag | | | +--------------------------Monat im Jahr (1-12) | | +----------------------------------Tag des Monats (1-31 oder Namen) | +------------------------------------------Stunde (0-23) +--------------------------------------------------Minute (0-59)
Hier ist also noch ein who hinzugekommen, so kann man auch die Cron-Jobs für unterschiedliche User umsetzen…
Aufbau einer crontab-Datei
Hier muss ich auch immer wieder nachschauen 😉 Vom Prinzip her ist es einfach, ich nenne einfach mal ein paar Beispiele im Anschluss
#minute hour mday month wday command | | | | | | | | | | | +----------Programm oder Script | | | | +------------------Wochentag (0-7 oder Namen) | | | | 0 & 7 stehen für Sonntag | | | +--------------------------Monat im Jahr (1-12) | | +----------------------------------Tag des Monats (1-31 oder Namen) | +------------------------------------------Stunde (0-23) +--------------------------------------------------Minute (0-59)
Beispiel 1 (Ein Command wird täglich um 13 Uhr ausgeführt):
0 13 * * * /etc/bin/sonstiger-Command
Beispiel 2 (Ein Command wird um 2 und um 14 Uhr ausgeführt):
0 2,14 * * * /etc/bin/sonstiger-Command
Beispiel 3 (Ein Command wird stündlich zu jeder vollen und halben Stunde ausgeführt):
0,30 * * * * /etc/bin/sonstiger-Command
Beispiel 4 (Ein Command wird am ersten Tag eines Monats um 5 Uhr ausgeführt):
0 5 1 * * /etc/bin/sonstiger-Command
Beispiel 5 (Ein Command wird am ersten und 15 Tag eines ungeraden Monats um 5 Uhr ausgeführt)::
0 5 * * 1 /etc/bin/sonstiger-Command
Beispiel 6 (Ein Command wird jeden Montag um 5 Uhr ausgeführt)::
0 5 * * 1 /etc/bin/sonstiger-Command
Bei weiteren Fragen nutzt doch einfach die Kommentarfunktion…