Zum Inhalt springen

Diskstation Shutdown-Skript

Mit Bordmitteln lässt sich die Diskstation ohne weiteres zu einem definierbaren Zeitpunkt herunterfahren, allerdings ohne Wenn und Aber und ohne Rücksicht auf Verluste. Streamt man nun gerade einen Film ist erstmal eine Pause angesagt, bis die Diskstation wieder hochgefahren wurde. Mit diesem kleinen Skript kann man das Herunterfahren relativ einfach mit zusätzlicher Intelligenz versehen.

Nach dem Start des Skriptes prüft die Diskstation zunächst, ob eventuell noch Clients im Netzwerk online sind. Ist dies der Fall wird 10 Minuten (WAITTIME=600) abgewartet bevor dann erneut gescannt wird. Im Beispiel wird das Ganze 24 mal wiederholt (MAXRETRYS=24), insgesamt also für 4 Stunden. Konnte das Gerät bis dahin nicht heruntergefahren werden wird das Skript beendet.

#!/bin/sh

MAXRETRYS=24
WAITTIME=600
SHUTDOWN=0

echo -e `date` '\t' "Starting shutdown bot..." >> shutdown.log

RETRY=0

while [ $RETRY -lt $MAXRETRYS ]; do

    if [ $RETRY -gt 0 ];
	then
 		sleep $WAITTIME	
	fi

	RETRY=$((RETRY+1))

	echo -e `date` '\t' "Try $RETRY -->" >> shutdown.log 

# desktop
	ping -c 1 MYPC >/dev/null 2>&1

	if [ $? -eq 0 ]; 
	then
		echo -e `date` '\t' "MYPC still online..." >> shutdown.log
		SHUTDOWN=0
		continue
	fi

	SHUTDOWN=1
	echo -e `date` '\t' "No clients found online" >> shutdown.log
	break

done


if [ $SHUTDOWN -eq 1 ];
then
       echo -e `date` '\t' "Execute poweroff" >> shutdown.log
       poweroff
else
       echo -e `date` '\t' "System not shut down" >> shutdown.log
fi