PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zu Shell-Script



Kinza
08.12.04, 08:04
Hallo zusammen,

Da ich totaler Anfänger bin in Sachen Scripterstellung, komme ich mit einer Frage in's Forum.

Schlussendlich will ich ein Cronjob erstellen, welcher alle 15 min nachfolgendes Script auf dem Server ausführt.

Funktion: Wenn sich kein Rechner des Adressbereiches 192.168.0.3 bis 192.168.0.10 mehr im LAN befindet, soll der Server heruntergefahren werden.

***************************

#!/bin/bash

fping -gar 1 192.168.0.3 192.168.0.10 > Temp.txt

if grep 192.168. Temp.txt ; then

echo "Ein oder mehrere Rechner im LAN"
else
halt

fi

*****************************

Das Script funktioniert auch so. Nun aber meine Frage: Gibt es eine Möglichkeit, das Gleiche zu erreichen, ohne über eine temporäre Datei zu gehen (Temp.txt)?

Anm.: fping schreibt alle Adressen in die Datei Tmp.txt, welche erreicht werden können resp. welch auf fping antworten.

Vielen Dank für Eure Hilfe
Gruss Kinza

tictactux
08.12.04, 08:26
Moin Kinza,

eine von mehreren Lösungen zu diesem Thema im letzten Monat ist hier
im Forum:
http://www.linuxforen.de/forums/showthread.php?t=158897

HTH
Wolfgang

Spiff
08.12.04, 08:29
Shell-Programme liefern im Allgemeinen einen Statuscode nach Beendigung zurück.


$ man ping
[...]
If ping does not receive any reply packets at all it will exit with code 1. On error it exits with code 2. Otherwise it
exits with code 0. This makes it possible to use the exit code to see if a host is alive or not.
[...]


Du kannst also zB schreiben:



ping 127.0.0.1 -c1 >/dev/null && echo "Erreichbar"

[LX]
08.12.04, 08:31
Z.B.:

if [ `fping -gar 1 192.168.0.3 192.168.0.10 | grep 192.168 | wc -w` -gt 0 ]
echo blah
else
halt
fi
Geht sicherlich auch noch kürzer...

Kinza
08.12.04, 21:10
']Z.B.:

if [ `fping -gar 1 192.168.0.3 192.168.0.10 | grep 192.168 | wc -w` -gt 0 ]
echo blah
else
halt
fi
Geht sicherlich auch noch kürzer...

Vielen Dank für die rasche Antwort. Ich habe die Codzeile if [ .... nur noch mit ; then ergänzt.
Läuft prima und ist etwas einfacher als mit dem "normalen" ping.

Gruss Kinza