Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:scripting:schultag.sh]] 

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

anwenderwiki:scripting:schultag.sh [2013/03/26 22:53] (aktuell)
Zeile 1: Zeile 1:
 +<​code>​
 +#!/bin/bash
 +# schultag.sh
 +# Dieses Skript liest die Konfigurationsdateien "​ferien.conf"​ und "​ausnahmen.conf"​
 +# und beendet sich mit Fehlercode 0, falls der Aufruf an einem Schultag ist.
 +# andernfalls beendet sich das Skript mit Fehlercode 99
 +# die Fehlercodes sind unten konfigurierbar
 +#
 +# Skript von Jesko Anschütz, Januar 2012
 +# Das Skript kann frei verwendet, angepasst, so gelassen oder auch nciht benutzt werden.
 +########### HIER WIRD KONFIGURIERT ###############​
  
 +# wo liegen die Config-Dateien?​
 +# Pfad mit abschließendem Schrägstrich
 +config_pfad="/​root/​schultag/"​
 +
 +# wie heißen die Dateien? ​
 +# Dateiname ohne Pfad und ohne Schrägstrich ​
 +ferien_conf="​ferien_bw.conf"​
 +feiertage_conf="​feiertage_bw.conf"​
 +ausnahmen_conf="​ausnahmen.conf"​
 +
 +# Welche Wochentage sind grundsätzlich Schulfrei?
 +# Leerzeichen-getrennte Liste der Lokalen Kurznamen der Tage
 +# (Deutsches System z.B. Mo Di Mi Do Fr Sa So)
 +schulfreie_wochentage="​Sa So"
 +
 +# In welchem Format stehen die Daten in den Config-Dateien?​ (Siehe ​ # man date)
 +datumsformat="​%Y%m%d"​
 +
 +# Vielleicht ist irgendwann eine Unterscheidung von Wochenende und Ferien sinnvoll
 +# z.B. für Home-Backups,​ die ja keinen Sinn machen in 6 Wochen Sommerferien...
 +exitcode_ferien=99
 +exitcode_wochenende=98
 +exitcode_feiertag=97
 +exitcode_schultag=0
 +
 +########### HIER DRUNTER MUSS NICHTS MEHR VERÄNDERT WERDEN! ################​
 +
 +# schauen wir mal, ob die Config-Dateien existieren und brechen ggf. ab.
 +[ ! -e $config_pfad$ferien_conf ] && echo "​Config-Datei $config_pfad$ferien_conf fehlt oder ist nicht lesbar!"​
 +[ ! -e $config_pfad$ausnahmen_conf ] && echo "​Config-Datei $config_pfad$ausnahmen_conf fehlt oder ist nicht lesbar!"​
 +
 +# Ausnahmen durchgehen und ggf. Schultag melden
 +for ausnahmedatum in `awk '​{print $1}' $config_pfad$ausnahmen_conf`;​
 +do
 +  if [ "​$ausnahmedatum"​ == `date +$datumsformat` ] 
 +  then 
 + exit $exitcode_schultag
 +  fi
 +done
 +
 +for schulfrei in $schulfreie_wochentage;​
 +do 
 +  if [ "​$schulfrei"​ == `date +%a` ] 
 +  then
 + exit $exitcode_wochenende
 +  fi
 +done  ​
 +
 +for feiertag in `awk '​{print $1}' $config_pfad$feiertage_conf`;​
 +do
 +  if [ "​$feiertag"​ == `date +$datumsformat` ] 
 +  then 
 +    exit $exitcode_feiertag
 +  fi
 +done
 +
 +
 +for ferien in `awk '​{print $1}' $config_pfad$ferien_conf`;​
 +do
 + if [ "​$ferien"​ != "#"​ ] 
 + then 
 + IFS="​-"​
 + set -- $ferien
 + if [ $1 -le `date +$datumsformat` ] && [ $2 -ge `date +$datumsformat` ]
 + then ​
 + exit $exitcode_ferien
 + fi
 + fi
 +done
 +exit 0
 +</​code>​
 [[anwenderwiki:scripting:schultag.sh]] anwenderwiki/scripting/schultag.sh.txt · Zuletzt geändert: 2013/03/26 22:53 (Externe Bearbeitung)