Allgemein

Cronjob am ersten Montag eines Monats ausführen

Wenn es um Automatisierung von Aufgaben oder Erstellung von Berichten geht, nutzt man als Admin eigentlich immer Cronjobs. Mal einen Report am 1. des Monats, mal ein Script an jedem Montag. Soweit geht das problemlos. Wenn man eine Aufgabe an jedem ersten Montag des Monats durchführen will, sollte das doch recht einfach möglich sein. Folgende Zeile in der Crontab wird doch funktionieren, oder?

Ließt man die Zeile in gewohnter Form sollte um 14:00 an dem 1.-7. Tag jedes Monats, wenn dieser ein Montag ist, die /bin/aufgabe ausgeführt werden. Leider entspricht das nicht dem beobachteten und dokumentierten (wink) Verhalten von Cron. Ein Blick in die man-Page hilft hier schnell weiter.

Die Felder für Tag im Monat und Wochentag sind also per ODER verknüpft. Sobald eines der beiden Kriterien zutrifft wird die Zeile ausgeführt. Um eine UND-Verknüpfung zu erreichen, muss man den Wochentag in der Aufgabe selber prüfen. Dies kann man entweder im Script machen, oder auch direkt in der Crontab. Letzteres geht z.B. folgendermaßen.

Das “[[…]]” eine Kurzform von IF und durch das “&&” wird die Aufgabe nur ausgeführt, wenn die vorige Bedingung TRUE zurückgibt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.