[Freifunk Franken] Der altbekannte Bug / Konektivitäts watchdog
Jan-Tarek Butt
buttjantarek at googlemail.com
Sa Aug 10 15:17:50 CEST 2013
Hallo ich habe noch mal ein paar änderungen vorgenommen und eine fehler
behoben.
Wie immer bitte fleißig Komentieren wenn jemand ideen oder verbesserungs
vorschläge hat.
#!/bin/bash
# Dieser Watchdog überprüft mit Hilfe von verschiedenen zuständen ob:
# -es sich um einen Mesh Router handelt
# -wenn es sich um ein Mesh Router handelt, ob er korrekt läuft
# -wenn es ich um ein VPN Router handelt der ein Mesh Router im lokalem
Netzt hat, wo der ath9k Bug auftritt ein reboot macht
# -der Zustand wenn ein VPN Router keine lokalen Mesh Router besitzt,
konnte ich bisher nicht definiren
#-----Start Config-----
#Angabe des VPN interfaces aus ifconfig
vpninterface=ffolVPN
#Angabe der Datei um die Werte der Variablen zu Speichern
varfile=watchdogVariabeln
#Meshrouter hat kein Uplink. Reboot nach X Cron abfragen
mupreboot=8
#Mesh beim Meshrouter funktioniert nicht. Reboot nach X Cron abfragen
mmeshreboot=4
#VPNrouter hat keine Verbindung zu Netmon. Reboot nach X Cron abfragen
uupreboot=4
#VPNrouter Mesh funktioniert nicht. Reboot nach X Cron abfragen
umeshreboot=4
#Kontrolle ob mesh router vorhanden nach x cron abfragen zurücksetzen
meshzust=10
#-----End Config-----
#Netmaon Adresse. per uci auslesen
api_ipv6_adress=`uci get configurator. at api <http://twitter.com/@api>
[0].ipv6_address`
iface=`uci get configurator. at api <http://twitter.com/@api>
[0].ipv6_interface`
netmonadr="$api_ipv6_adress"%"$iface"
#Variabeln auslehsen
meshkeinUP=$(head -n1 $varfile | tail -n1)
meshRkeinmesh=$(head -n2 $varfile | tail -n1)
upkeinnetmon=$(head -n3 $varfile | tail -n1)
upkeinmesh=$(head -n4 $varfile | tail -n1)
meshhisto=$(head -n5 $varfile | tail -n1)
histodauer=$(head -n6 $varfile | tail -n1)
#überprüft ob Netmon ereichtbar ist
ping6 -c 4 $netmonadr;
ping=$?
#überprüft ob der VPN läuft
ifconfig | grep $vpninterface
vpn=$?
#überprüft ob Orginators existieren
batctl o |grep -E "(wlan)"
orginator=$?
if [ $orginator -eq 0 -a $meshhisto -eq 0 ]; then
meshhisto=1
sed -i "5c $meshhisto" $varfile
fi
if [ $meshhisto -eq 1 ]; then
histodauer=$(( $histodauer + 1 ))
sed -i "6c $histodauer" $varfile
fi
if [ $histodauer -eq $meshzust ]; then
sed -i "6c 0" $varfile
sed -i "5c 0" $varfile
fi
#################################################
# Meshrouter Kontrolle #
#################################################
#Wenn Orginator, Ping gleich 0 sind und vpn gleich 1. Meshrouter
läuft korrekt
if [ $orginator -eq 0 -a $ping -eq 0 -a $vpn -ne 0 ]; then
sed -i "1c 0" $varfile
sed -i "2c 0" $varfile
sed -i "3c 0" $varfile
sed -i "4c 0" $varfile
sed -i "6c 0" $varfile
exit
fi
# Meshrouter hat kein Uplink
if [ $orginator -eq 0 -a $ping -ne 0 -a $vpn -ne 0 ]; then
meshkeinUP=$(( $meshkeinUP + 1 ))
sed -i "1c $meshkeinUP" $varfile
if [ $meshkeinUP -eq $mupreboot ]; then
sed -i "1c 0" $varfile
reboot
fi
fi
#Mesh beim meshrouter funktionirt nicht
if [ $orginator -ne 0 -a $ping -ne 0 -a $vpn -ne 0 ]; then
meshRkeinmesh=$(( $meshRkeinmesh + 1 ))
sed -i "2c $meshRkeinmesh" $varfile
if [ $meshRkeinmesh -eq $mmeshreboot ]; then
sed -i "2c 0" $varfile
reboot
fi
fi
#################################################
# VPN Router Kontrolle #
#################################################
#VPN Router mit lokalem Meshrouter läuft korrekt
if [ $orginator -eq 0 -a $ping -eq 0 -a $vpn -eq 0 ]; then
sed -i "1c 0" $varfile
sed -i "2c 0" $varfile
sed -i "3c 0" $varfile
sed -i "4c 0" $varfile
sed -i "6c 0" $varfile
exit
fi
#VPN Router keine Verbindung zu Netmon
if [ $ping -ne 0 -a $vpn -eq 0 ]; then
upkeinnetmon=$(( $upkeinnetmon + 1 ))
sed -i "3c $upkeinnetmon" $varfile
if [ $upkeinnetmon -eq $uupreboot ]; then
sed -i "3c 0" $varfile
reboot
fi
fi
#VPN Router Mesh funktionirt nicht
if [ $orginator -ne 0 -a $meshhisto -eq 1 -a $vpn -eq 0 ]; then
upkeinmesh=$(( $upkeinmesh + 1 ))
sed -i "4c $upkeinmesh" $varfile
if [ $upkeinmesh -eq $umeshreboot ]; then
sed -i "5c 0" $varfile
sed -i "4c 0" $varfile
reboot
fi
fi
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://lists.freifunk.net/mailman/private/franken-freifunk.net/attachments/20130810/e8821478/attachment.html>
Mehr Informationen über die Mailingliste franken