Ok...non sono un genio di linux ma qualcosina sono riuscito a fare...tramite interfaccia audio che poi può collegata ad un bca.
Allora, ho creato un file chiamato special days dove ho inserito i giorni "speciali" quali Natale, capodanno, befana, etc... nel formato
2512
0101
0601
etc
etc
poi ho inserito dei files audio chiamati "giorno", "notte", etc...
poi ho creato uno script del genere chiamato cortesia.sh:
#!/bin/sh
# In fase di avvio come prima cosa elimino tutti i processi audio esistenti
pkill -f play
# Setto le variabili data, ora e giorno della settimana
hour="$(date "+%H%M")"
dow="$(date "+%a")"
day="$(date "+%d%m")"
# Qui come variabile inserisco i giorni festivi nel formato ddmm
file=/etc/special_days.txt
#I file audio utilizzati per giorno-notte-pausa-festivo
day_service=/etc/giorno.wav
night_service=/etc/notte.wav
break=/etc/pausa.wav
special_days=/etc/special.wav
# Controllo se è un giorno speciale
if grep -q "$day" "$file"; then
pkill -f play
play $special_days repeat 1000
exit 0
# Altrimenti controllo se è sabato o domenica
else
if [ "$dow" = "Sat" ] || [ "$dow" = "Sun" ]; then
pkill -f play
play $night_service repeat 1000
exit 0
# Nei giorni settimanali controllo data e ora. In questo caso è aperto dalle 08:00 alle 12:00 e dalle 13:00 alle 17:00
else
if [ "$hour" -le "0800" ] || [ "$hour" -ge "1700" ]; then
pkill -f play
play $night_service repeat 1000
elif [ "$hour" -ge "1200" ] && [ "$hour" -le "1300" ]; then
pkill -f play
play $break repeat 1000
elif [ "$hour" -ge "0800" ] || [ "$hour" -le "1700" ]; then
pkill -f play
play $day_service repeat 1000
fi
fi
fi
exit 0
# Fine dello script
poi nel file /etc/inittab ho inserito:
PL:23:wait:/etc/cortesia.sh
ed infine ad ogni cambio orario il cron controlla ancora data/ora/giorni speciali
01 0 * * * root /etc/cortesia.sh
01 8 * * * root /etc/cortesia.sh
01 12 * * * root /etc/cortesia.sh
01 13 * * * root /etc/cortesia.sh
01 17 * * * root /etc/cortesia.sh
Ovviamente il file cortesia.sh va reso eseguibile con chmod +x /etc/cortesia.sh
ed il servizio cron riavviato con service cron restart