rolu2
Teammitglied
- Registriert
- 16. November 2009
- Beiträge
- 9.092
- Lösungen
- 4
- Reaktionspunkte
- 4.662
- Punkte
- 393
Zustand ist das ich Sonoff-Geräte in meiner Homematic benutze. Diese sind im Wlan-Netz eingebunden.Diese könnem mal nicht erreichbar sein.
Daher wollte ich sie über meinen Raspberry Pi3 anpingen, um es zu prüfen, ob sie erreichbar sind und wenn nicht über UPD neustarten
Im Netzt habe ich ein script gefunden, wie ich es mir vorstelle.
Leider ist da folgenen Fehlermeldung, wenn die IP nicht erreichbar ist
So wie es aussieht, kann der
Hat da jemand eine Idee zu oder eine andere Lösung
Daher wollte ich sie über meinen Raspberry Pi3 anpingen, um es zu prüfen, ob sie erreichbar sind und wenn nicht über UPD neustarten
Im Netzt habe ich ein script gefunden, wie ich es mir vorstelle.
Code:
#!/bin/bash
# check and log if a host is reachable by ping
#CONFIGURATION
#IP of host
WATCH_IP="192.168.0.99"
#path to logfile
LOGFILE="/var/log/watchip.log"
#duration between pings
PAUSE=3
#how many failed pings before log
TESTS=2
#SCRIPT
#initialize
MISSED=0
touch $LOGFILE
while true; do
if ! ping -c 1 -w 1 $WATCH_IP > /dev/null; then
((MISSED++))
else
if [ $MISSED -ge $TESTS ]; then
echo `date` '-' $WATCH_IP "is up again." >> $LOGFILE;
fi
MISSED=0
fi;
if [ $MISSED -eq $TESTS ]; then
echo `date` "-" $WATCH_IP "is down." >> $LOGFILE;
fi
sleep $PAUSE;
done
Code:
Beschreibung
Im CONFIGURATION-Abschnitt werden vier Variablen definiert, die das Verhalten des Skripts steuern. $WATCH_IP enthält die IP-Adresse des zu überwachenden Hosts, $LOGFILE den Pfad zur Logdatei, $PAUSE die Wartezeit (in Sekunden) zwischen jedem Pingversuch und $TESTS die Anzahl fehlgeschlagener Pings nach der eine Meldung ins Log geschrieben wird.
Das Skript schickt pro Durchlauf immer nur einen Ping (-c 1) auf die Reise und wartet eine Sekunde (-w 1) auf die zugehörige Antwort. Bleibt diese aus, erhöht sich $MISSED um eins, war er hingegen erfolgreich wird $MISSED wieder auf 0 gesetzt. Wenn die Schwelle $TESTS erreicht wird, fügt das Skript eine Zeile mit Zeitstempel und Host-down-Info an die Logdatei an. Ist der Rechner dann wieder per Ping erreichbar, wird in die Logdatei eine ähnliche Host-up-Meldung geschrieben.
Leider ist da folgenen Fehlermeldung, wenn die IP nicht erreichbar ist
Code:
+ WATCH_IP=192.168.178.11
+ LOGFILE=/var/log/watchip.log
+ PAUSE=3
+ TESTS=2
+ MISSED=0
+ touch /var/log/watchip.log
+ true
+ ping -c 1 -w 1 192.168.178.11
+ MISSED++
./test.sh: 23: ./test.sh: MISSED++: not found
+ [ 0 -eq 2 ]
+ sleep 3
+ true
+ ping -c 1 -w 1 192.168.178.11
+ MISSED++
./test.sh: 23: ./test.sh: MISSED++: not found
+ [ 0 -eq 2 ]
+ sleep 3
+ true
+ ping -c 1 -w 1 192.168.178.11
+ MISSED++
So wie es aussieht, kann der
nicht verarbeitet werdenif ! ping -c 1 -w 1 $WATCH_IP > /dev/null; then
((MISSED++))
Hat da jemand eine Idee zu oder eine andere Lösung