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