Ich hab hier mal schnell nen bash script zusammen geschusstert, das IPs prüft ob diese erreichbar sind. Sollte keine der angegeben IPs erreichbar sein, so wird der Rechner der dieses Script ausführt runtergefahren. Das ganze hab ich gemacht, damit mein homeserver sobald kein Rechner mehr online ist heruntergefahren wird.
Um das zu realisieren muss natürlich ein cron job eingerichtet werden.
Der Code sollte selbst erklärend sein und funktioniert theoretisch in jeder bash shell. Getestet wurde es mit debian 7.0 (testing)
Alles anzeigen
Das Script geht davon aus das ihr lokal einen DNS Server betreibt, sollte das nicht so sein, ist die Script ausgabe ein wenig "hässlich", da kein dns name sondern iwas anderes da steht. Zudem funktioniert dieses Script nur mit einer Korn oder Bash Shell, da let nur in diesen beiden Shells verfügbar ist.
MfG mE
Um das zu realisieren muss natürlich ein cron job eingerichtet werden.
Der Code sollte selbst erklärend sein und funktioniert theoretisch in jeder bash shell. Getestet wurde es mit debian 7.0 (testing)
Quellcode
- #! /bin/bash
- # Script zum pren ob ein Host online oder offline ist, wenn alle offline sind server aus
- COUNTER="0"
- NULL="0"
- IP="192.168.1.30 192.168.1.31 192.168.1.32 192.168.1.33 "
- for IP in $IP;
- do
- if ping -c 3 $IP >> /dev/null; then
- HOST=$(host $IP | cut -d ' ' -f 5- | cut -d '.' -f -1)
- date >> offline.txt
- echo -e $IP "/" $HOST "ist \033[42m online \033[0m" >> offline.txt
- COUNTER=`expr $COUNTER + 1`
- else
- date >> offline.txt
- echo -e $IP "/" $HOST "ist \033[41m offline \033[0m" >> offline.txt
- fi;
- done;
- if let "$COUNTER == $NULL" ; then
- /sbin/halt
- echo "halt" >> offline.txt
- else
- echo "Es war noch mindestens 1 host online!" >> offline.txt
- fi;
Das Script geht davon aus das ihr lokal einen DNS Server betreibt, sollte das nicht so sein, ist die Script ausgabe ein wenig "hässlich", da kein dns name sondern iwas anderes da steht. Zudem funktioniert dieses Script nur mit einer Korn oder Bash Shell, da let nur in diesen beiden Shells verfügbar ist.
MfG mE