[Tool] Ping Watchdog

Antworten
Benutzeravatar
martinallnet
NI - VIP
Beiträge: 89
Registriert: Fr 8. Apr 2016, 14:42

[Tool] Ping Watchdog

Beitrag #1 von martinallnet » Di 26. Apr 2016, 22:37

Hier mein Ping Watchdog, der die Funktion einer Netzwerkverbindung über Ping an 2 verschiedene Server überprüft.
Er wird erst aktiv und löst eine konfigurierbare Aktion aus, wenn beide Server zum testen komplett nicht mehr antworten.

Bei mir läuft das auf dem Router, um den Status der primären WAN-Verbindung zu überwachen und dann wenn auf 3G umgeschaltet wird ggf. den Freifunk-Hotspot offline zu nehmen.

Das läuft aber auf so ziemlich jedem Linux.

Nach kleinen Anpassungen kann man z. B. auch den Status eines Gerätes überwachen und bei Ausfall eine Aktion auslösen, auch kann die Fehlertoleranz über den Packet Loss Wert im Vergleichswert der Schleife angepasst werden. Dann muss natürlich statt des "=" ein Größenvergleich genutzt werden.
Das berechnet sich aus der Anzahl der angepingten Server, pro server ist maximal ein Packet Loss von 100 % möglich, daher bei 2 Servern im Beispiel 200 %.

Code: Alles auswählen

#!/bin/sh

server1="server1.com"			# Ping Server 1
server2="server2.com"			# Ping Server 2

interface="eth0"				# Interface für den Ping
ping_count=5					# Pinganzahl pro Server
sleep=20						# Pause bis zur naechsten Ausfuehrung (s)

connection_status=1				# Status der Verbindung bei Scriptstart

echo

while true
        do

sleep $sleep

echo "Get ping request from server $server1 ..."
ping1=$(ping -I $interface -c$ping_count -q $server1 | grep "packet loss" | cut -d',' -f3 | cut -d'%' -f1)

echo "Get ping request from server $server2 ..."
ping2=$(ping -I $interface -c$ping_count -q $server2 | grep "packet loss" | cut -d',' -f3 | cut -d'%' -f1)

ping=$(expr $ping1 + $ping2)

if [ 200 = $ping ]
        then
                if [ $connection_status = 1 ]
                        then
                                echo "Connection lost ..."
                                echo "Status: ($ping)"
								connection_status=0
								# Befehle, die bei Verbindungsverlust ausgefuehrt werden sollen
                        else
                                echo "Connection already lost, skipping ..."
                                echo "Status: ($ping)"
                fi
        else
                if [ $connection_status = 0 ]
                        then
                                echo "Connection established ..."
                                echo "Status: ($ping)"
                                connection_status=1
								# Befehle, die bei Wiederherstellung der Verbindung ausgefuehrt werden sollen
                        else
                                echo "Connection already astablished, skipping ..."
                                echo "Status: ($ping)"
                fi
fi

echo

        done
Dateianhänge
check_ping.zip
(706 Bytes) 40-mal heruntergeladen

Benutzeravatar
martinallnet
NI - VIP
Beiträge: 89
Registriert: Fr 8. Apr 2016, 14:42

Re: [Tool] Ping Watchdog

Beitrag #2 von martinallnet » Di 26. Apr 2016, 23:13

Mir fällt gerade auf, das dieses Thema hier eher in den Netzwerk Bereich passt, evtl. kann das ja mal ein Moderator verschieben. ;)

Benutzeravatar
fred_feuerstein
NI - Team
Beiträge: 1270
Registriert: Di 5. Apr 2016, 16:11
Wohnort: Rhein-Main-Gebiet
Box: TankMut@ntTrinityZee²LinkHD1BSE

Re: [Tool] Ping Watchdog

Beitrag #3 von fred_feuerstein » Di 26. Apr 2016, 23:21

Danke. Ich habs mal in die Plugins geschoben.

Muss mir bei Gelegenheit mal anschauen was das Skript genau macht und wo der Unterschied zu dem hier ist:
http://www.neutrino-images.de/board/vie ... ?f=15&t=79

Benutzeravatar
martinallnet
NI - VIP
Beiträge: 89
Registriert: Fr 8. Apr 2016, 14:42

Re: [Tool] Ping Watchdog

Beitrag #4 von martinallnet » Di 26. Apr 2016, 23:33

Stoppt bei mir einen Service per SSH auf dem Freifunk-Router, wenn die Verbindung bei Verlust der primären Internetverbindung auf Mobilfunk umschaltet wird.
Die Aktion wird nur 1x ausgeführt (stellt also fest, ob sich der Zustand der Verbindung geändert hat oder nach wie vor gleich ist) bis zur Wiederherstellung der Verbindung.
Daher wohl eher weniger ein Coolstream Plugin, mir fällt da jetzt zumindest kein Verwendungszweck auf der Cooli ein.

Antworten

Zurück zu „Netzwerke, Internet und Telekommunikation“