CRON - Karnevalistische Lösung des Datums

Hobbystern

Hobbystern

Wahl-Debianer
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
 
M

marce

Kaiser
... und was ist nun genau das Problem, das gelöst werden soll?

Aktuell steht für mich die Lösung eigentlich in
in dieser wird gesteuert was an jedem Tag passieren soll
 
P

Programmer78

Doppel-As
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