Herunterfahren des NAS über das Netzwerk [FaJoSSHD]

Dieses HowTo beschreibt, wie man das NAS über das Netzwerk herunterfahren oder neu starten kann, ohne sich an der WebUI anzumelden. Die Methode, die hier beschrieben wird kann somit zum automatisierten Herunterfahren oder Neustart aus anderen Anwendungen heraus genutzt werden. Das HowTo geht davon aus, dass das Modul FaJoSSHD auf den Ziel NAS installiert und aktiviert ist. Alle Scripte, die in diesem HowTo beschrieben werden, können am Ende der Seite heruntergeladen werden.

Update: Seit FaJoSSHD 1.04.00 sind ähnliche Scripte Bestandteil des Modules.

Schritt 1 - Verzeichnis für die Scripte anlegen

Für die Scripte sollte ein eigenes Verzeichnis auf dem Master RAID angelegt werden. In diesem HowTo nutzen wir das Verzeichnis "/raid/data/_tools_"

mkdir -m 0755 /raid/data/_tools_

Da die Scripte mit root Privilegien ausgeführt werden, sollte kein Netzlaufwerk oder freigegebener Ordner (Share) benutzt werden.

 

Schritt 2 - Anlegen der Scripte

Jetzt werden in dem in Schritt (1) angelegten Verzeichnis zwei Scripte angelegt. Die Scripte stellen sicher, dass die selbe Funktion ohne Änderung auf fast allen Modellen genutzt werden können:

Das erste Script ist das Script zum Herunterfahren des NAS. Dazu legen wir die Datei "/raid/data/_tools_/shutdown.sh" mit folgendem Inhalt an:

#!/bin/sh

cd /

cmd="/bin/false"

if   [ -x /img/bin/sys_halt         ] ; then  # 64bit
    cmd="/img/bin/sys_halt"
elif [ -x /img/bin/model/sysdown.sh ] ; then  # 32bit v2.1+
    cmd="/img/bin/model/sysdown.sh poweroff"
elif [ -x /img/bin/sysdown.sh       ] ; then  # 32bit < v2.1
    cmd="/img/bin/sysdown.sh poweroff"
else
    echo "No shutdown script found!"
    cmd="/bin/false"
fi

trap "" 1 2 3 13 15

exec ${cmd} </dev/null >/dev/null 2>&1 &

Das zweite Script dient dem Neustart des NAS und wird als "/raid/data/_tools_/reboot.sh" mit folgendem Inhalt angelegt:

#!/bin/sh

cd /

cmd="/bin/false"

if   [ -x /img/bin/sys_reboot       ] ; then  # 64bit
    cmd="/img/bin/sys_reboot"
elif [ -x /img/bin/model/sysdown.sh ] ; then  # 32bit v2.1+
    cmd="/img/bin/model/sysdown.sh reboot"
elif [ -x /img/bin/sysdown.sh       ] ; then  # 32bit < v2.1
    cmd="/img/bin/sysdown.sh reboot"
else
    echo "No reboot script found!" >&2
    cmd="/bin/false"
fi

trap "" 1 2 3 13 15

exec ${cmd} </dev/null >/dev/null 2>&1 &

Jetzt muss noch dafür gesort werden, dass die Scripte ausgeführt werden können:

chmod 0755 /raid/data/_tools_/shutdown.sh
chmod 0755 /raid/data/_tools_/reboot.sh

 

Schritt 3 - Schlüsselpaare erzeugen

Damit keine Passwörter eingegeben werden müssen werden für die Authentifizierung schlüsselpaare genutzt. Für jedes Script wird ein eigenes Schlüsselpaar benötigt. Um die Schlüsselpaare zu erzeugen nutze ich in diesem HowTo OpenSSH unter Linux:

ssh-keygen -t rsa -b 2048 -N "" -C "NAS Shutdown Key" -f ~/.ssh/nas-shutdown
ssh-keygen -t rsa -b 2048 -N "" -C "NAS Reboot Key" -f ~/.ssh/nas-reboot

Hierdurch werden zwei Schlüsselpaare erzeugt - diese sind nicht durch ein Passwort geschützt. Für die nächsten Schritte benötigen wir die öffentlichen Schlüssel (.pub Dateien) - die Schlüssel sehen etwa wie folgt aus

ssh-rsa AAAA...... NAS Shutdown Key
ssh-rsa AAAA...... NAS Reboot Key

 

Schritt 4 - Anpassen der Datei authorized_key auf dem NAS

Jetzt müssen die Schlüssel noch mit den dazugehörigen Scripten "verbunden" und für due Authentifizierung freigegeben werden. Dazu tragen wir zwei Zeilen in die Datei

/raid/data/module/FaJoSSHD/system/etc/ssh/users/root/authorized_keys

ein. Jede Zeile enthält einen der öffentlichen Schlüssel dem die zugehörige "command" Option vorangestellt wird. Die Zeilen sollten dann wir folgt aussehen:

command="/raid/data/_tools_/shutdown.sh" ssh-rsa AAAA...... NAS Shutdown Key
command="/raid/data/_tools_/reboot.sh" ssh-rsa AAAA...... NAS Reboot Key

 

Herunterfahren oder Neustart des NAS

Die folgenden Beispiele nutzen wiederum OpenSSH unter Linux.

Um das NAS herunterzufahren ist der ssh Client wie folgt aufzurufen (NASIP ist mit der IP Adresse des NAS zu ersetzen)

ssh -l root -i ~/.ssh/nas-shutdown NASIP

Um das NAS neu zu Starten ist der ssh Client wie folgt aufzurufen (NASIP ist mit der IP Adresse des NAS zu ersetzen)

ssh -l root -i ~/.ssh/nas-reboot NASIP

Zusätzliche Kommandozeilenparameter können nötig sein (z.B.: -o IdentitiesOnly=yes).

Anhänge

AnhangGröße
[file] shutdown_wrapper_scripts.zip
MD5: 14343bcd2c508ac608f8aee512cf8fbd
640 Bytes