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)
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)
Code:
#! /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;
MfG mE