Ping-Rückgabewerte ; Computer an?

Hallo Unix und Linux-Fans!

Unter meinem SuSE 7.2 Computer suche ich nach einer Lösung ermitteln zu können, ob ein anderer Computer des LAN angeschaltet ist. Da ich für die abzufragenden Computer die IP-Adressen kenne habe ich mir gedacht, dass ich ihnen einfach einen Ping schicke.
Jetzt habe ich als Anfänger das Problem, dass ich ein solches Skript noch nicht schreiben kann. Das Skript soll ja nur an einer Stelle zuverlässig unterscheiden: Ist die Gegenseite an- oder ausgeschaltet. Je nachdem soll das Skript mit TeilA oder TeilB weitermachen. Aber wie geht das?

Danke schon mal für Hilfe
Benjamin Meier

Hallo Benjamin

Das Ergebnis von ping auszuwerten ist etwas schwierig, da die Ausgabe bei den einzelnen Distributionen evtl. unterschidlich sein kann.
Bei mir unter SuSE 7.1 klapp es mit folgendem Script (Aufruf: scriptname ipadresse)

#!/bin/bash

IPADDR=$1

RUECK=`ping -c 1 $1 | grep received | cut -d, -f2 | cut -d" " -f2`
if [$RUECK = 1]; then
 #Rechner ist erreichbar 
 echo "Der Rechner $IPADDR ist erreichbar"
 else
 #Rechner ist nicht erreichbar
 echo "Der Rechner $IPADDR ist nicht erreichbar"
fi
exit

Grüße
Martin

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

besser das:
probier mal lieber das:

if (ping -w 1 -c 1 192.168.1.2> /dev/null); then echo online; else echo offline; fi;

bei mir klappts wunderbar!
-w 1 : hoechstens eine sekunde warten wenn der rechner nicht erreichbar ist
-c 1 : nur ein packet schicken

Das klappt dann auch auf jedem rechner!

Hallo David

probier mal lieber das:

if (ping -w 1 -c 1 192.168.1.2> /dev/null); then echo
online; else echo offline; fi;

*brettvomkopfnehm*
Klar, an den Rückgabewert hab ich garnicht gedacht. Macht die ganze Sache natürlich gleich viel übersichtlicher.

Grüße
Martin

*brettvomkopfnehm*

)

ich denke allerdings auch haeufig viel zu kompliziert!

Danke für eure Hilfe!

Klappt echt prima. Wo finde ich eigentlich Hilfen über die Rückgabewerte von Programmen? In der man steht dazu nämlich gar nichts.

Danke für eure Hilfe!

Klappt echt prima. Wo finde ich eigentlich Hilfen über die
Rückgabewerte von Programmen? In der man steht dazu nämlich
gar nichts.

man find ergibt:

Der Status von find ist Null, wenn alle Aktionen erfolgreich waren, im Fehlerfall ist der Status größer als Null.

oder in english:

find exits with status 0 if all files are processed successfully, greater than 0 if errors occur.