FreeNas automatisch herunter fahren via Cronjob

25
Apr.

Um etwas Strom zu sparen lass ich das FreeNas um 24Uhr runter fahre.

unter System -> Cron Jobs -> add Cronjob

Command shutdown -p now

einmal am Tag ausführen um 00 Uhr

 

Das hochfahren übernimmt bei mir das BIOS um 7 Uhr.

 

Nachteil: Fahrt runter ohne Rücksicht auf Benutzung

2. Möglichkeit prüfen via sh Script ob Geräte an sind und wenn nicht runter fahren.

das Script anlegen:

 

#!/bin/bash
HOST1=192.168.0.33 #IP des ersten PC
HOST2=192.168.0.35 #IP des zweiten PC
ip_range=192.168.0. #Netzadresse des eigenen Netzwerkes ohne den Hostanteil
ip=40 #checke Netz ab IP-Adresse 40

_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 ] ; 
then _exit 1; # abbrechen, ein PC läuft
# 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
	while [ $ip -le 45 ] #checke Netz bis Hostanteil 45
do
	ping -c 1 -i 1 $ip_range$ip #ping mit der zusammengesetzten IP-Adresse aus den o.a. Variablen "ip" und "i"
	if [ `ping -c 1 -i 1 $ip_range$ip | 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
 ip=$(( $ip+1 )) #erhöhe Hostanteil immer um 1
done

_exit 2 # hat kein PC geantwortet, shutdown
fi

 

unter Befehl: sh /mnt/pool1/shutdowncheck.sh   // /mnt/pool1 = Pfad zur sh Datei

Alle 15min ab 20 bis 7uhr  ausführen, mit dem geprüft wird, ob noch ein Rechner läuft, der das NAS brauchen könnte.

cronjob