CRON - Karnevalistische Lösung des Datums

Hobbystern

Wahl-Debianer
Beiträge
199
Guten Morgen Gemeinde,

ich brauche eine Lösung für eine ganze Gruppe von kleinen Soundsystemen, welche Verkaufsraumbeschallung fahren.

Jeder Mini PC holt sich eine CRON Datei jeden Tag ab, in dieser wird gesteuert was an jedem Tag passieren soll.
Wann geht die Musik an zBsp.

Nun soll eine Erweiterung her, Weihnachtsmusik wird schon per Kalender gesteuert, ist ja einfach, da statisch.
Aber Karnevalsmusik per Cron ist dann nicht "mal eben".

Hier kann man das für Ostersonntag lösen, aber leider mit PERL.
Mit Ostersonntag und dem Wissen, dass Aschermittwoch immer 46 Tage davor liegt, hätte ich eine Lösung.
Würde ich Bash's "gcal" nutzen, wäre es auch ok.

Aber vielleicht hat jemand hier eine bessere Lösung ohne Zusatzfunktionen außerhalb von Cron....

Stefan
 

Programmer78

Doppel-As
Beiträge
146
Da cron nicht weiss, wann die Feiertage sind, ist es meiner Meinung nach nur außerhalb von cron zu lösen. Hier ein kleiner Befehl dazu, welcher dir zumindest das Datum ausgibt.

Verwendete Programme:
awk, echo, date, ncal, sed

Kurzbefehlszeile:
Code:
date -d @$(( $(date -d "$(echo $(ncal -e | sed 's!\.! !g') | awk '{ print $3"-"$2"-"$1 " 07:00" }')" +%s) - 3974400 )) +%d.%m.%Y

Zum besseren Verständnis, dieser Einzeiler wurde aus folgendem zusammengeschrumpft:

Code:
#! /bin/bash
Ostern=$(ncal -e | sed 's!\.! !g')
OsternZeitstempel=$(date -d "$(echo $Ostern | awk '{ print $3"-"$2"-"$1 " 07:00" }')" +%s)
Aschermittwoch=$(( $OsternZeitstempel - 3974400 ))
date -d @$Aschermittwoch +%d.%m.%Y

Man kann auch date direkt anweisen, eine bestimmte Anzahl von Tagen abzuziehen, ist mir aber nicht gelungen ... : /
 
Zuletzt bearbeitet:
Oben