Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:scripting:schultag.sh]] 
no way to compare when less than two revisions

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


anwenderwiki:scripting:schultag.sh [2013/03/26 22:53] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1
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 von 127.0.0.1