PrincePaul
Software-Overclocker(in)
Linux Skript für automatischen Shutdown
Hallo Leute,
evtl. haben es schon einige von euch mitbekommen
aber ich baue momentan ein Gehäuse für ein NAS mit FreeNas als OS
welches ja auf Linux basiert....
SOoo nun zum Problem:
ich möchte das mein NAS die Rechner bzw. TV´s im Netzwerk anpingt um festzustellen wann das NAS nichtmehr benötigt wird und dann letztendlich automatisch runterfährt
evtl habt ihr ja noch andere Ideen wie man das realisieren kann
wichtig ist nur das es nachdem alle im Netzwerk offline gegangen sind das NAS runterfährt.
Naja ich hab mir da mal folgende 2 Skripte rausgesucht:
Skript 1:
Skript 2:
Fehler:
Skript 1 4: Syntax error: expecting "in"
Skript 2 7: Syntax error: expecting "in"
Die Rechte der Dateien sind auf 755 und um die Datei zu erstellen hab ich PSPad genutzt bzw. Text Editor von Windows und dannach einfach die Endung von txt auf sh geändert
ging aber beides nicht
hoffe jemand kann mir helfen
Gruß
Paule
Hallo Leute,
evtl. haben es schon einige von euch mitbekommen
aber ich baue momentan ein Gehäuse für ein NAS mit FreeNas als OS
welches ja auf Linux basiert....
SOoo nun zum Problem:
ich möchte das mein NAS die Rechner bzw. TV´s im Netzwerk anpingt um festzustellen wann das NAS nichtmehr benötigt wird und dann letztendlich automatisch runterfährt
evtl habt ihr ja noch andere Ideen wie man das realisieren kann
wichtig ist nur das es nachdem alle im Netzwerk offline gegangen sind das NAS runterfährt.
Naja ich hab mir da mal folgende 2 Skripte rausgesucht:
Skript 1:
Code:
#!/bin/bash
_exit () {
case $1 in
1) echo "Kein Shutdown - Mindestens einer der PCs ist eingeschaltet" ;;
2) echo "Kein PC online - Shutdown in 60 Sekunden" ; shutdown -p +1 ;;
esac
exit $1;
}
# Checken ob PC1 oder PC2 oder TV1 oder TV2 an ist
# .31 PrincePaul-PC .22 Unser-PC-1 .21 TV .25 TV2
if [ `ping -c 5 -i 1 192.168.178.31 | grep -wc 100.0%` -eq 0 ] ; then _exit 1 ; fi
if [ `ping -c 5 -i 1 192.168.178.22 | grep -wc 100.0%` -eq 0 ] ; then _exit 1 ; fi
if [ `ping -c 5 -i 1 192.168.178.21 | grep -wc 100.0%` -eq 0 ] ; then _exit 1 ; fi
if [ `ping -c 5 -i 1 192.168.178.25 | grep -wc 100.0%` -eq 0 ] ; then _exit 1 ; fi
# Wenn kein PC an ist 3 mins warten falls gerade einer Neu startet
echo "Kein PC online - Warte 180 Sekunden"
sleep 180
# PCs nochmals checken
# Checken ob PC1 oder PC2 oder TV1 oder TV2 an ist
if [ `ping -c 5 -i 1 192.168.178.31 | grep -wc 100.0%` -eq 0 ] ; then _exit 1 ; fi
if [ `ping -c 5 -i 1 192.168.178.22 | grep -wc 100.0%` -eq 0 ] ; then _exit 1 ; fi
if [ `ping -c 5 -i 1 192.168.178.21 | grep -wc 100.0%` -eq 0 ] ; then _exit 1 ; fi
if [ `ping -c 5 -i 1 192.168.178.25 | grep -wc 100.0%` -eq 0 ] ; then _exit 1 ; fi
# Falls keiner der PCs online war herunterfahren
_exit 2
Skript 2:
Code:
#!/bin/bash
HOST1=192.168.178.31 #PC
HOST2=192.168.178.22 #PC2
HOST3=192.168.178.21 #TV
HOST4=192.168.178.25 #TV2
HOST5=192.168.178.23 #Laptop
_exit () {
case $1 in
1) echo "Kein Shutdown - Mindestens einer der PCs ist eingeschaltet" ;;
2) echo "Kein PC online - Shutdown" ; shutdown -p now ;;
esac
exit $1;
}
# Checken ob PC's an sind
if [ `ping -c 1 -i 1 $HOST1 | grep -wc 100.0%` -eq 0 ] || [ `ping -c 1 -i 1 $HOST2 | grep -wc 100.0%` -eq 0 ] || [ `ping -c 1 -i 1 $HOST3 | grep -wc 100.0%` -eq 0 ] || [ `ping -c 1 -i 1 $HOST4 | grep -wc 100.0%` -eq 0 ] || [ `ping -c 1 -i 1 $HOST5 | grep -wc 100.0%` -eq 0 ] ; then _exit 1;
# Wenn kein PC an ist, gehe zu Checken ob PC's im IP-Bereich an sind
else
# Checken ob PC's im IP-Bereich an sind
ip=192.168.178. #Netzadresse des eigenen Netzwerkes ohne den Hostanteil
i=21 #checke Netz ab Hostanteil 21
while [ $i -le 35 ] #checke Netz bis Hostanteil 35
do
ping -c 1 -i 1 $ip$i #ping mit der zusammengesetzten IP-Adresse aus den o.a. Variablen "ip" und "i"
if [ `ping -c 1 -i 1 $ip$i | grep -wc 100.0%` -eq 0 ] #sobald einer der Hosts auf den ping antwortet, nicht herunterfahren
then _exit 1 #beenden mit exit 1 (kein shutdown)
fi
i=$(( $i+1 )) #erhöhe Hostanteil immer um 1
done
_exit 2 # hat kein PC geantwortet, shutdown
fi
Fehler:
Skript 1 4: Syntax error: expecting "in"
Skript 2 7: Syntax error: expecting "in"
Die Rechte der Dateien sind auf 755 und um die Datei zu erstellen hab ich PSPad genutzt bzw. Text Editor von Windows und dannach einfach die Endung von txt auf sh geändert
ging aber beides nicht
hoffe jemand kann mir helfen
Gruß
Paule
Zuletzt bearbeitet: