Vorweg die Hintergrundgeschichte: wir hatten ein Staubsauger-System im Haus, das im Schnitt alle zwei Monate gereinigt werden musste. Da wir uns den Termin nur schlecht merken konnten habe ich an dieser Lösung gebastelt.

Erste Konfiguration

Diese Konfiguration ist nicht mehr aktuell und nicht mehr in Verwendung.

1
30  3  1-7  1,3,5,7,9,11  Sat  /Users/dominic/bin/notify.sh

Das Skript /Users/dominic/bin/notify.sh wird ausgeführt:

  • im Monat 1,3,5,7,9,11
  • an den Tagen 1–7
  • falls der Tag ein Sat ist (ein Samstag)
  • um 03:30 Uhr

Das lief ganz gut, jedoch verwende ich derzeit eine andere Konfiguration – die mir die Möglichkeit bietet, einen Report zu versenden, auch wenn das Skript eigentlich keine Aktion ausführen würde.

Würde ich das so laufen lassen, würde das Skript nur am ersten Samstag in jedem zweiten Monat ausgeführt werden. Ich möchte jedoch, dass das Skript tatsächlich an jedem Samstag ausgeführt wird, aber nur am ersten in jedem zweiten Monat einen Bericht sendet.

Deshalb verwende ich nun folgende (ähnliche) Konfiguration.

Zweite Konfiguration

Diese Konfiguration war zueletzt auf meinem FreeBSD-Server1 aktiv.

1
30  3  *  1,3,5,7,9,11  6  /Users/dominic/bin/notify.sh

Diese Version lässt das Skript an jedem Samstag (6) in den Monaten 1,3,5,7,9,11 ausführen; das Skript checkt selbst ob es der erste Samstag im jeweiligen Monat ist.

Damit erhalte ich an jedem Samstag in den oben genannten Monaten einen Bericht über die Ausführung des Skriptes. Es lässt sich dadurch einfach feststellen, ob das Skript noch korrekt ausgeführt wird oder nicht.

Nachstehend ein Beispiel für die Routine im Skript, die feststellt, ob es die Aktion ausführen soll oder nicht.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
TODAY="`date +%_d`"

if [ $TODAY -gt "7" ]; then
  ACTION='NO'
  # set a variable or silently quit the program
  #return 0
else
  # execute the final action/function
  # set special variables etc.
  ACTION='YES'
fi

Das Skript läuft derzeit auf meinem NAS zuhause und wurde daher an diese Umgebung angepasst. Eine aktuelle Fassung des Skriptes kann auf Github nachgelesen werden.


  1. poison-ivy.dominicreich.com [return]