Ping auswerten

Hallo Linux Anwender
ich bräuchte mal einen kleinen tipp
ich möchte gerne über ein kleines shell-script den ip-ping status auswerten

zb (läuft aber nicht )

#!/bin/sh
/bin/ping -c1 10.0.0.59
if $? -eq 0; then
echo Hallo ister erreichbar
else
echo Erfolglos gepingt
fi

###################

vieleicht
habe ich da ja nur einen kleinen fehler drin

MfG
Marcus

Hallo Linux Anwender
ich bräuchte mal einen kleinen tipp
ich möchte gerne über ein kleines shell-script den ip-ping
status auswerten

OK, Du solltest Dir zunächst mal die HOWTOs zur bash Programmierung anschauen:

http://www.tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html

bzw. für fortgeschrittene

http://www.tldp.org/LDP/abs/html/index.html

Insbesondere die Abschnitte zur IF Abfrage nochmal anschauen. Achte auf die Leerzeichen nach bzw. vor den eckigen Klammern!

Da ich gute Laune habe, hier mal das von Dir gewünschte Skript:

#!/bin/bash

if [-n "$1"]; then
 /bin/ping -q -c1 $1 &\> /dev/null
else
 echo "Nutzung: $0 "
 exit 1
fi

if ["$?" -gt 0]; then
 echo $1 nicht erreichbar!
else
 echo $1 erreichbar!
fi
exit 0

Zunächst solltest Du bei einem solchen shell skript den zu pingenden host nicht fest vorgeben, sondern per Parameter übergeben. Sollte irgend ein Dödel diesen Parameter vergessen, dann muss das Programm mit einer aussagekräftigen Fehlermeldung aussteigen (in diesem Fall mit Exit Code 1 :smile:

Den ping selbst solltest Du möglichst geräuschlos machen (-q) und sonstige Ausgaben dennoch alle ins Nirvana schicken ( &> /dev/null), denn irgendwelche Meldungen vom original-ping versauen Dir u.U. die Ausgabe.

Gruß

Fritze

Hallo Fritze

erstaml rechtherzlichen dank für deine Hilfe.

ich habe aber immer noch ein kleines problem
und zwar wenn der host nicht erreichbar ist .
bekommt das script kein ende .
erst nach dem abrechen (mit Strg c ) kommt die meldung
>hostname nicht erreichbar!

vieliecht fällt dir oder auch jemand anderem was dazu ein .

MfG
Marcus

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

erstaml rechtherzlichen dank für deine Hilfe.

Bitteschön.

ich habe aber immer noch ein kleines problem
und zwar wenn der host nicht erreichbar ist .
bekommt das script kein ende .
erst nach dem abrechen (mit Strg c ) kommt die meldung
>hostname nicht erreichbar!

Dann hast Du aber nicht 100% meine Version übernommen, sondern hast höchstwahrscheinlich eine andere Abbruchbedingung gewählt. Wenn Du die Option „-c1“ beim „ping“ Befehl vergisst, dann läuft er bei einem erreichbaren Host endlos. Bei einem nicht erreichbaren Host hingegen bricht das Programm auch ohne „-c1“ augenblicklich ab, weil „ping“ eine 1 zurückliefert (Keinerlei Antwort vom Host).

Gruß

Fritze

hi fritze

ich habe das script genau so übernommen !!

jetzt habe ich das script mal auf zwei verschiedenen suse versionen getestet (8.0 und 7.2)

bei suse 8.0 bekam ich erst die antwort wenn ich es mit strg c abgebrochen habe .
und unter suse 7.2 funktioniert das script wunderbar !!

woran könnte dies liegen ??

MfG
Marcus

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

bei suse 8.0 bekam ich erst die antwort wenn ich es mit strg c
abgebrochen habe .
und unter suse 7.2 funktioniert das script wunderbar !!

woran könnte dies liegen ??

Keine Ahnung! Vielleicht ein Bug in der SuSE 8.0 Version der bash oder des ping?

Es sollte jedenfalls genau so funktionieren.

Gruß

Fritze