Egal ob man mit crontab -e
eine Crontabelle für den eigenen User anlegt, mit sudo crontab -e
eine systemweite Crontabelle generiert, gleich die /etc/crontab
bearbeitet oder in /etc/cron.d
einen programmspetifischen Cronjob ablegt. Es gilt immer dem Cronjob zu sagen was er wann ausführen soll, dazu gibt es die ominösen ersten fünf Angaben in der Cronjob-Zeile.
17 * * * * root run-parts --report /etc/cron.hourly 59 23 * * * username /pfad/zu/skript.sh */5 * * * * username ping -c 1 www.google.de > /dev/null 2>&1
Die Syntax für einfache Aufgaben zu lernen ist nicht sonderlich schwer, meist reicht ein Blick ins Wiki. Doch was muss man denn jetzt als Cronjob angeben, wenn jede ungerade Minute, zu jeder geraden Stunde, zweimal im Monat, aber bitte nur an ungerade Monaten, aber dann auch nur an Wochentagen das Kommando foobar ausgeführt werden soll? Dafür müssen wohl auch erfahrene Sysadmins ein paar Minuten grübeln.
1-59/2 */2 */15 1-11/2 0,6 foobar >/dev/null 2>&1
Ganz so einfach lässt sich die Logik nicht zusammenstellen, aber per Mausklick ist das schnell gemacht, man muss nur wissen wo! Mit dem Crontab-Generator lassen sich Cronjobs Schritt für Schritt mit der Maus zusammenbauen, so dass man am Ende nur noch die Cronjob-Zeile in die Crontab des betroffenen Systems übernehmen muss. Der Generator beachtet dabei auch die Ausgaben, man kann sie verwerfen, in eine Datei schreiben oder per Mail verschicken. Damit dürften die meisten Anwendungsfälle wohl abgedeckt sein.
Danke für die Tipps!