S
shadeghost
Grünschnabel
Hallo zusammen,
Ich möchte ein shell-script schreiben, welches mir in einem IP-Bereich alle IP-Adressen checkt, ob sie erreichbar sind. Das ganze soll in eine Datei geschrieben werden und später im Browser mit html angezeigt werden. Je nachdem ob der Host erreichbar ist oder nicht, wird die Shell-Ausgabe im HTML grün oder rot angezeigt.
Ich habe ein bisschen rum probiert. Mir fehlt es aber an dem nötigen Know-How:
#!/bin/bash
# Script zum Prüfen welche IPs im Netz gebraucht werden und elche frei sind
# Autor: Remo Fritschi
echo "<html><head></head><body>" > FreeIP_Auswertung.html
for ((zahl=1;zahl<10;zahl++)) do
ping -c 1 -t 3 192.168.1.$zahl | grep "packet loss" > FreeIP_temp
export wert="cat FreeIP_temp"
if [ $wert = "1 packets transmitted, 0 packets received, 100% packet loss" ]; then
echo "<font color='green'>192.168.1.$zahl: is free</font><br>" >> FreeIP_Auswertung.html
else
echo "<font color='red'>192.168.1.$zahl: blocked</font><br>" >> FreeIP_Auswertung.html
fi
echo "" >> FreeIP_Auswertung.txt
done
echo "</body></html>" >> FreeIP_Auswertung.html
Bei diesem Script funktioniert die If-Abfrage nicht korrekt. Wie kann ich das Ping-Ergebnis eleganter ermitteln, damit ich es im If vergleichen kann? Ist es möglich das der Ping-Befehl nur true oder false ausgibt?
Ich denke da so an awk oder sed...
Könnt ihr mir weiterhelfen?
Vielen Dank zum voraus!
Ich möchte ein shell-script schreiben, welches mir in einem IP-Bereich alle IP-Adressen checkt, ob sie erreichbar sind. Das ganze soll in eine Datei geschrieben werden und später im Browser mit html angezeigt werden. Je nachdem ob der Host erreichbar ist oder nicht, wird die Shell-Ausgabe im HTML grün oder rot angezeigt.
Ich habe ein bisschen rum probiert. Mir fehlt es aber an dem nötigen Know-How:
#!/bin/bash
# Script zum Prüfen welche IPs im Netz gebraucht werden und elche frei sind
# Autor: Remo Fritschi
echo "<html><head></head><body>" > FreeIP_Auswertung.html
for ((zahl=1;zahl<10;zahl++)) do
ping -c 1 -t 3 192.168.1.$zahl | grep "packet loss" > FreeIP_temp
export wert="cat FreeIP_temp"
if [ $wert = "1 packets transmitted, 0 packets received, 100% packet loss" ]; then
echo "<font color='green'>192.168.1.$zahl: is free</font><br>" >> FreeIP_Auswertung.html
else
echo "<font color='red'>192.168.1.$zahl: blocked</font><br>" >> FreeIP_Auswertung.html
fi
echo "" >> FreeIP_Auswertung.txt
done
echo "</body></html>" >> FreeIP_Auswertung.html
Bei diesem Script funktioniert die If-Abfrage nicht korrekt. Wie kann ich das Ping-Ergebnis eleganter ermitteln, damit ich es im If vergleichen kann? Ist es möglich das der Ping-Befehl nur true oder false ausgibt?
Ich denke da so an awk oder sed...
Könnt ihr mir weiterhelfen?
Vielen Dank zum voraus!