Die nächsten Feiertage stehen vor der Tür und ich bin ja bekanntlich ein ganz fauler Hund :cool: und dazu stehe ich (und der Rest der Bagage) ungern an Feiertagen frueher auf, als notwendig.
Achtung: Dieses Script stellt alle Alarme an einem Feiertag aus und am naechsten nicht Feiertag gnadenlos auch alle wieder an!
Fallls Ihr nachts vor einem Feiertag einen Rescan macht, das wird vom Script erkannt und stoppt den Vorgang - also sinnvollerweise eine Uhrzeit fuer den Cronjob nehmen, an dem garantiert kein rescan laeuft.
Für wen könnte das noch interessant sein?
Dieses Script in /usr/local/bin abspeichern und ausfuehrbar machen.
In der Wget Url den Wert HE bei state=HE gegen das eigene Bundesland tauschen -> quelle http://www.feiertage.net/frei-tage.php
Moegliche Bundeslaender:
Zum test die raute in der Zeile #today='31.10.2017' entfernen und das Script starten.
Danach sollten alle Alarme ausgeschaltet sein.
Nun wieder diese Zeile entfernen oder mit einer raute auskommentieren und einen Cronjob anlegen, der fruehestens um 00:01 und spaetestens vor dem ersten Alarm startet.
Damit die Änderungen in der Server.prefs übernommen werden - muß vorher der LMS gestoppt werden !
Fertig.
Viel Spass
\edit²
Eine Control Datei /var/lib/squeezeboxserver/prefs/alarm_off.prefs wird an einem Feiertag angelegt, damit an einem nicht Feiertag nicht unnötig der Server gestoppt und alle Alarme wieder auf aktiv gestellt werden.
/edit²
Achtung: Dieses Script stellt alle Alarme an einem Feiertag aus und am naechsten nicht Feiertag gnadenlos auch alle wieder an!
Fallls Ihr nachts vor einem Feiertag einen Rescan macht, das wird vom Script erkannt und stoppt den Vorgang - also sinnvollerweise eine Uhrzeit fuer den Cronjob nehmen, an dem garantiert kein rescan laeuft.
Für wen könnte das noch interessant sein?
- Wohnhaft in Deutschland (ich nutze diese quelle und die kennt nur die deutschen Feiertage)
- LMS auf einem Linux Server
- alle die ihre ganzen Alarme / Wecker der diversen Player nicht an Feiertagen aktiv haben moechten.
Dieses Script in /usr/local/bin abspeichern und ausfuehrbar machen.
In der Wget Url den Wert HE bei state=HE gegen das eigene Bundesland tauschen -> quelle http://www.feiertage.net/frei-tage.php
Moegliche Bundeslaender:
- BW -> Baden-Württemberg
- BY -> Bayern
- BE -> Berlin
- BB -> Brandenburg
- HB -> Bremen
- HH -> Hamburg
- HE -> Hessen
- MV -> Mecklenburg-Vorpommern
- NI -> Nieder Sachsen
- NW -> Nordrhein-Westfalen
- RP -> Rheinland-Pfalz
- SL -> Saarland
- SN -> Sachsen
- ST -> Sachsen-Anhalt
- SH -> Schleswig-Holstein
- TH -> Thüringen
Zum test die raute in der Zeile #today='31.10.2017' entfernen und das Script starten.
Danach sollten alle Alarme ausgeschaltet sein.
Nun wieder diese Zeile entfernen oder mit einer raute auskommentieren und einen Cronjob anlegen, der fruehestens um 00:01 und spaetestens vor dem ersten Alarm startet.
Damit die Änderungen in der Server.prefs übernommen werden - muß vorher der LMS gestoppt werden !
Fertig.
Viel Spass
\edit²
Eine Control Datei /var/lib/squeezeboxserver/prefs/alarm_off.prefs wird an einem Feiertag angelegt, damit an einem nicht Feiertag nicht unnötig der Server gestoppt und alle Alarme wieder auf aktiv gestellt werden.
/edit²
Code:
#!/bin/bash
#vars
today=`date +'%d'.'%m'.'%Y'`
#today='31.10.2017'
my_year=`date +'%Y'`
feiertage=~/feiertage_$my_year.csv
if [ ! -f "$feiertage" ]
then
wget 'www.feiertage.net/csvfile.php?state=HE&year='$my_year'&type=csv' -O ~/feiertage_$my_year.csv
fi
grep $today "$feiertage" && (
scanstatus=$(printf "rescan ?\nexit\n"|nc 127.0.0.1 9090|cut -d ' ' -f2)
if [ "$scanstatus" = "1" ]
then
echo "lms is scanning ..wait 2 hours"
sleep 2h
fi
service logitechmediaserver stop
sed -i 's= _enabled: '\''1'\''= _enabled: '\''0'\''=g' /var/lib/squeezeboxserver/prefs/server.prefs
grep enabled /var/lib/squeezeboxserver/prefs/server.prefs>/var/lib/squeezeboxserver/prefs/alarm_off.prefs
service logitechmediaserver start
) || (
if [ -f "/var/lib/squeezeboxserver/prefs/alarm_off.prefs" ]
then
service logitechmediaserver stop
sed -i 's= _enabled: '\''0'\''= _enabled: '\''1'\''=g' /var/lib/squ
service logitechmediaserver start
rm /var/lib/squeezeboxserver/prefs/alarm.prefs
fi
)