technik:gateways:eigenueberwachung

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
technik:gateways:eigenueberwachung [01.09.2015 - 09:51] albitechnik:gateways:eigenueberwachung [28.04.2019 - 11:38] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 5: Zeile 5:
    /usr/local/bin/check_tasks &    /usr/local/bin/check_tasks &
  
-Hier das Script, wenn es mit einem Parameter gestartet wird (check_tasks x), läuft ein einfacher Debug Mode, wenn man dann zufrieden ist, kann es in rc.local eingetragen werden oder einfach mit **check_tasks &** gestartet werden. Verbesserungen usw. sind willkommen, am besten auf der Gateway Mailingliste.+Hier das Script, wenn es mit einem Parameter gestartet wird (check_tasks x), läuft ein einfacher Debug Mode, wenn man zufrieden ist, kann es in rc.local eingetragen werden oder mit **check_tasks &** gestartet werden. Verbesserungen usw. sind willkommen, am besten auf der Gateway Mailingliste. 
    #! /bin/bash    #! /bin/bash
-<WRAP center round box 60%> +   #       Alle wichtigen Task pruefen und bei Bedarf neu starten und per Email informieren 
-einfache zentrierte Box +    
-</WRAP+   #       Variablen 
-<WRAP center round download 60%+   logfile=/var/log/check_tasks 
-Download-Box +   email=albi@freifunk-weinstadt.de 
-</WRAP>+   dnsip=172.21.28.1 
 +   dnsanfrage=web.de 
 +   dnsback=212.227 
 +   norestart=0 
 +   vpnerror=0 
 +   vpndown=1 
 +    
 +   if [ -n "$1" ]; then 
 +       testmode=$1 
 +       echo "start Testmode" 
 +   fi 
 +   if [ -z "$testmode" ]; then 
 +       #   Bei Start erst mal warten 
 +       sleep 2 
 +       #   Logfile kuerzen 
 +       mv -f $logfile $logfile.old 
 +       tail -n 1000 $logfile.old >$logfile 
 +       echo "Start $0" 
 +       echo "$( date ) Start $0" >>$logfile 
 +   fi 
 +    
 +   #       Endlosschleife 
 +   while : ; do 
 +    
 +       #   Antwort auf "" setzen 
 +       antwort="" 
 +    
 +   ## dnsmasq pruefen 
 +       prg="dnsmasq" 
 +       back=`pgrep $prg` 
 +       echo -n "check $prg: " 
 +       if [ -z "$back" ] ; then 
 +    if [ $norestart -le 1 ] ; then 
 +            echo "Error" 
 +        antwort+="Fehler: $prg nicht gestartet\nFehler: $back\n\n" 
 +            echo -n "Restart $prg: " >>$logfile 
 +            date >>$logfile 
 +        service $prg restart 
 +        sleep 5 
 +    else 
 +        echo "Error (Norestart = $norestart)" 
 +    fi 
 +       else 
 +           echo "OK" 
 +       fi 
 +    
 +   ## dnsmasq dns Anfragen pruefen 
 +       prg="dnsmasq" 
 +   #    back=`dig @$dnsip +noall +answer $dnsanfrage` 
 +       back=`nslookup $dnsanfrage $dnsip` 
 +       zahl=`echo $back | grep -c $dnsback` 
 +       echo -n "check DNS-Anfrage:
 +       if [ "$zahl" -gt 0 ] ; then 
 +    if [ $norestart -le 1 ] ; then 
 +            echo "Error" 
 +        antwort+="Fehler: $prg antwortet nicht auf DNS-Anfragen\nFehler: $back\n\n" 
 +            echo -n "Restart $prg: " >>$logfile 
 +            date >>$logfile 
 +        service $prg restart 
 +        sleep 5 
 +    else 
 +        echo "Error (Norestart = $norestart)" 
 +    fi 
 +       else 
 +           echo "OK" 
 +       fi 
 +    
 +   ## openvpn pruefen 
 +       prg="openvpn" 
 +       #ip=`ip -o -4 addr list tun0 | awk '{print $4}' | cut -d-f1` 
 +       ip=`ip -o -4 addr list tun0 | awk '{gsub("/.*","",$4); print $4}'
 +       echo -n "check ping web.de: " 
 +       back=$(ping -c2 -I $ip web.de 2>&1) 
 +       zahl=$? 
 +       if [ "$zahl" -gt 0 ] ; then 
 +           echo "Error" 
 +    echo -n "check ping 8.8.8.8: " 
 +    back=$(ping -c2 -I $ip 8.8.8.8 2>&1) 
 +    zahl=$? 
 +       fi 
 +       if [ "$zahl" -gt 0 ] ; then 
 +           if [ $norestart -le 1 ] ; then 
 +            echo "Error" 
 +            antwort+="Fehler: $prg antwortet nicht auf ping\nFehler: $back\n\n" 
 +        echo -n "Restart $prg: " >>$logfile 
 +            date >>$logfile 
 +        service $prg restart 
 +            ((vpnerror++)) 
 +        # nach Neustart laengere Pause 
 +            if [ $vpnerror -gt 1 ] ; then 
 +            # Gateway deaktivieren 
 +            batctl gw off 
 +    vpnerror=0 
 +    vpndown=1 
 +            fi 
 +        sleep 5 
 +    else 
 +        echo "Error (Norestart = $norestart)" 
 +    fi 
 +       else 
 +           if [ $vpndown -gt 0 ] ; then 
 +               # Gateway deaktivieren 
 +               batctl gw server 
 +               vpndown=0 
 +    fi 
 +    vpnerror=0 
 +           echo "OK" 
 +       fi 
 +    
 +    
 +   #       Email senden wenn Fehler auftrat 
 +       if [ -n "$antwort" ]; then 
 +           norestart=5 
 +           echo "Sende Email an $email" 
 +           echo -n "Sende Email an $email: " >>$logfile 
 +           date >>$logfile 
 +           echo -e "$antwort" | mutt -s "Fehler auf Server $HOSTNAME" $email 
 +       fi 
 +    
 +   if [ $norestart -gt 0 ] ; then 
 +       ((norestart--)) 
 +   fi 
 +   if [ -z "$testmode" ]; then 
 +       sleep 50 
 +   else 
 +       echo "Norestart = $norestart" 
 +   fi 
 +   sleep 10 
 +    
 +   done
  
  • technik/gateways/eigenueberwachung.1441101084.txt.gz
  • Zuletzt geändert: vor 5 Jahren
  • (Externe Bearbeitung)