Nachdem ich mein NAS jetzt per WOL starten kann will ich es automatisch runter fahren lassen wenn keiner meiner beiden PC's läuft. Dazu habe ich ein Script aus diesem Thread angepasst:
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;
}
# Prüfen ob PC1 oder PC2 antwortet.
# .2 PC1 .3 PC2
if [ `ping -c 5 -i 1 192.168.1.2 | grep -wc 100.0%` -eq 0 ] ; then _exit 1 ; fi
if [ `ping -c 5 -i 1 192.168.1.3 | grep -wc 100.0%` -eq 0 ] ; then _exit 1 ; fi
# Wenn kein PC antwortet, 2 Minuten warten und dann erneut prüfen.
echo "Kein PC online - Warte 120 Sekunden"
sleep 120
# PCs nochmals prüfen
# Prüfen ob PC1 oder PC2 eingeschalten ist.
if [ `ping -c 5 -i 1 192.168.1.2 | grep -wc 100.0%` -eq 0 ] ; then _exit 1 ; fi
if [ `ping -c 5 -i 1 192.168.1.3 | grep -wc 100.0%` -eq 0 ] ; then _exit 1 ; fi
# Wenn kein PC antwortet wird heruntergfahren.
_exit 2
Leider erhalte ich schon beim testen in der Konsole einen Syntax-Error:
[root@freenas] ~# sh /mnt/tank1/all/shutdown.sh
: not found
/mnt/tank1/all/shutdown.sh: 4: Syntax error: expecting "in"
Ich dachte erst es liegt am Editor aber auch wenn ich das Script mit Notepad++ oder PSPad speichere erhalte ich den Fehler.
Ich habe das Script einem Freund geschickt der es testweise auf seinem Debian-System ausgeführt hat und keinen Fehler erhält.
Im Thread hatten ja schon vor mir ein, zwei Leute diesen Fehler. Vielleicht kann mir jemand sagen woran es nun lag oder mir sein funktionierendes Script per E-Mail schicken.