Worum geht’s?
Ich nutze hier ein NAS von QNAP (TS-251+ mit zwei je 10 Terabyte fassenden 3,5″ Hard Disks) für Backups und andere Storage-Aufgaben.
Nachdem ich im Haus großflächig Strommessgeräte ausgerollt habe, zeigte sich recht schnell, dass das Ding ein kleiner Stromfresser ist.
Die Leistungsaufnahme im Normalbetrieb ist etwa 21 Watt – entsprechend rund 180 kWh pro Jahr. Im Sleep-Modus sind es dagegen nur 1 Watt bis maximal 2 Watt.
So kam der Wunsch auf, das NAS bei Nichtgebrauch in den Sleep-Modus zu schicken und es bei Bedarf auch wieder aufzuwecken. Und zwar ohne (a) mich dafür erst im Web-Interface anmelden zu müssen oder (b) womöglich zum Gerät zu laufen und eine Taste drücken zu müssen.
Die Optionen in der Benutzeroberfläche des NAS („put hard drives to sleep“) boten keinen stabil funktionierenden Weg, den Sleep-Modus wie gewünscht zu konfigurieren. Also musste ein anderer Weg gefunden werden.
In den Sleep-Modus
Auf dem QNAP NAS läuft ein Linux – hier gibt es eine große Zahl an Möglichkeiten um ein System in den Sleep-Mode zu versetzen; die Kernel-Dokumentation erklärt ausführlich.
Am Ende läuft es darauf hinaus, zwei Werte nach /sys
zu schreiben, um das System schlafen zu legen:
|
|
Testen lässt sich das sehr einfach: per ssh auf dem NAS einloggen und die beiden Werte schreiben. Funktioniert.
Das alles lässt sich schnell in ein File schreiben und schon hat man ein Tool an der Hand, mit welchem man via ssh das NAS schlafen legen kann – sei es manuell in der Shell oder im Falle von macOS eingebettet in Automator bzw. neuerdings Shortcuts:
|
|
Aufwecken
Liegt das QNAP NAS erstmal im Schlaf, lässt es sich auf zwei Arten wieder aufwecken:
- per Tippen auf den An-/Aus-Schalter
- über das Senden eines speziellen IP-Pakets („Wake on LAN“)
wakeonlan[1] ist ein kleines Tool, mit welchem man dieses Netzwerk-Paket erstellen und versenden kann. Es wird nur die Broadcast-Adresse[2] des Netzwerks benötigt, in dem das NAS steht sowie die MAC-Adresse (arp -i en0 -a
) des LAN-Interfaces am NAS:
|
|
Damit holt man das QNAP NAS wieder aus dem Schlaf. Auch dieser Befehl lässt sich in ein Script packen, um es für weitere Automatisierungen zur Hand zu haben.
Automatisierung
macOS
Automatisierungen im macOS-GUI laufen seit macOS 12 Monterey über Shortcuts. Hier lassen sich auch Shell-Skripte aufrufen, sodass man sich diese Aktionen z. B. in die Menu-Bar legen kann. Eine Zeitsteuerung ist wie gehabt mit cron möglich[3].

iOS
Auf iOS lässt sich ebenfalls die Shortcuts-App benutzen um das NAS schlafen zu legen und auch wieder aufzuwecken. Wake Me Up ist im App Store verfügbar, erledigt das Aufwecken und lässt sich über Siri direkt in Shortcuts ansprechen.
Um das NAS in den Sleep-Modus zu versetzen, kann die Funktion „Run script over SSH“ in Shortcuts benutzt werden.
Shortcuts stellt einen SSH-Public Key zur Verfügung, welcher auf dem NAS in ~/.ssh/authorized_keys
platziert wird:
command="/usr/local/bin/nas-sleep" ssh-ed25519 AAAAC[...] Shortcuts on iPhone 13 Pro
Die Option command=
sorgt dafür dass das angegebene Script bei erfolgreichem Login sofort ausgeführt wird. In dem Script steht nichts weiter als die beiden Kommandos für das Schlafenlegen[4]:
|
|
Die Konfiguration in Shortcuts sieht so aus:

Mehr ist nicht notwendig, beim Ausführen dieser Aktion legt sich das NAS sofort schlafen.
-
Die Broadcast-Adresse kann auch weggelassen werden, dann geht das Paket an die globale Broadcast-Adresse.
-
Der Sleep-Mode lässt sich natürlich auch direkt auf dem QNAP NAS per cron aktivieren.
-
Statt eines Wrapper-Skripts können auch einfach die beiden
echo
-Kommandos direkt in dieauthorized_keys
geschrieben werden:command="echo deep > /sys/power/mem_sleep ; echo mem > /sys/power/state " ssh-ed25519 AAAAC[...] Shortcuts on iPhone 13 Pro