Hallo, ich stehe vor dem Problem, Ping-Zeiten zwischen verschieden LAN messen zu müssen. Dafür habe ich im jeweiligen Netz einen Linux-Rechner, wo ich ein gebasteltes Script[1] laufen hab. Dieses führt in einer Schleife 3 Echo-Requests aus und schreibt den Mittelwert zusammen mit Datum und Uhrzeit in eine Datei. Mein Problem ist nun, wenn der Ping scheitert. Dann läuft meine Schleife nicht weiter. Wie könnte ich das abfangen? Das Script ist mit Sicherheit mega-umständlich, aber ein Kollege und ich, wir sind da keine Experten auf diesem Gebiet. Danke schon mal. Gruß Jürgen [1] #!/bin/bash i=1 until [ $i -gt 90000 ] ; do time="Datum `date +%k`:`date +%M` / `date +%d`:`date +%m`:`date +%y`" #Pingzeiten erfassen in einer Datei echo $time >ping.txt ping -c 3 $Ziel-IP >> ping.txt # Daten in eine Datei einpflegen cat ping.txt | grep "Datum" | awk '{print $2}' >erg1.txt cat ping.txt | grep "Datum" | awk '{print $4}' >erg3.txt cat ping.txt | grep "min/avg/max/mdev" | awk '{print $4}' >erg2.txt paste -d trenner.txt erg2.txt >var1.txt #trenner=/ cut -d/ -f2 var1.txt >tr1.txt cut -d/ -f3 var1.txt >tr2.txt cut -d/ -f4 var1.txt >tr3.txt echo -n "$i: " >>ergebnis.txt paste -d \; $erg3 $erg1 $tr1 >>ergebnis.txt i=$[$i +1] done
Mein Problem ist nun, wenn der Ping scheitert. Dann läuft meine Schleife nicht weiter. Wie könnte ich das abfangen?
man ping -w deadline Specify a timeout, in seconds, before ping exits regardless of how many packets have been sent or received. In this case ping does not stop after count packet are sent, it waits either for deadline expire or until count probes are answered or for some error notification from network. -W timeout Time to wait for a response, in seconds. The option affects only timeout in absense of any responses, otherwise ping waits for two RTTs.
Hallo!
Mein Problem ist nun, wenn der Ping scheitert. Dann läuft meine Schleife nicht weiter. Wie könnte ich das abfangen?
man ping
-w deadline
Vielen Dank für Eure Tipps! Für mich war es jetzt das einfachste, obige Option einzubauen. Dass ich auf sowas nicht selbst komme... Noch eine Frage zu dem bing-Vorschlag von Ralf. Ist das das gleiche, was auch von SuSE bereits mitgeliefert wird? So richtig kann ich mich mit dem Teil noch nicht anfreunden... Grüße Jürgen
Juergen Pabst schrieb:
Hallo,
ich stehe vor dem Problem, Ping-Zeiten zwischen verschieden LAN messen zu müssen. Dafür habe ich im jeweiligen Netz einen Linux-Rechner, wo ich ein gebasteltes Script[1] laufen hab. Dieses führt in einer Schleife 3 Echo-Requests aus und schreibt den Mittelwert zusammen mit Datum und Uhrzeit in eine Datei.
Mein Problem ist nun, wenn der Ping scheitert. Dann läuft meine Schleife nicht weiter. Wie könnte ich das abfangen?
Das Script ist mit Sicherheit mega-umständlich, aber ein Kollege und ich, wir sind da keine Experten auf diesem Gebiet.
Danke schon mal. Gruß Jürgen
Hi Juergen, bei bricht 'ping -c 3 <nirgendwohin>' nach drei Versuchen ab und setzt in der tcsh die Variable $status auf 1. Ist der ping aber erfolgreich, wird $status auf 0 gesetzt. Mein Tipp ist also, entweder die Ausgabe von ping selbst auszuwerten oder aber den Rückgabewert an die Shell von 'ping'. Gruss, N. Eschricht
-----Ursprüngliche Nachricht----- Von: Juergen Pabst [mailto:jirrschi@gmx.net] Gesendet: Mittwoch, 2. August 2006 12:54 An: suse-linux@suse.com Betreff: Ping-Script-Frage
Hallo,
ich stehe vor dem Problem, Ping-Zeiten zwischen verschieden LAN messen zu müssen. Dafür habe ich im jeweiligen Netz einen Linux-Rechner, wo ich ein gebasteltes Script[1] laufen hab. Dieses führt in einer Schleife 3 Echo-Requests aus und schreibt den Mittelwert zusammen mit Datum und Uhrzeit in eine Datei.
Hilft das ggf. http://spengler.econ.duke.edu/~ferizs/bing.txt
participants (4)
-
Dominik Klein
-
Juergen Pabst
-
N. Eschricht
-
ralf.prengel@comline.de