Page 1 of 1

USV - Nas abschalten via Tweaks

Posted: Wed 15. May 2019, 08:57
by rich
eine Usv für mehrere Nas-Systeme:
meine Config schaut so aus:

- 1x USV APC Back Ups Es 550 (inkl. USV-Datenkabel)
- 1x Nsa540 (Hauptnas)
- 3x Nsa310 (Nebengeräte)

Nas mit USV-Datenkabel Anbindung:
die Usv ist mit einem Datenkabel an das Hauptsystem (540) gebunden,
dieses Prüft in wie voll der Akku stand der USV ist,

wenn der Hauptstrom wegbricht wird per Akku sichergestellt, dass die angeschlossenen Geräte am leben bleiben.
der Hauptnas (540) Prüft nun per USB Datenverbindung die Kapazität des Akku's in der USV
und fährt bei erreichen eines Schwellenwert Herunter (im Adminbreich einstellbar).

soweit so gut, leider kann man an eine USV nur ein Nas anschließen,
also müssen wir schauen, wie der 310nas mitbekommt, dass der Hauptnas (540) durch die USV abgeschalten wurde.

Nas OHNE USV-Datenkabel anbindung:
als erstes sollten folgende Pakete auf eurem Nas ohne USV anbindung installiert sein:
- PHP-MySQL-phpMyAdmin (ZyXEL)
- Tweaks (Mijzelf)

in eurem Webordner erstellt ihr eine .php datei (shutdown.php) mit diesem Inhalt:

Code: Select all

<?php
$server="http://nsa540"; //hier sollte der Nas mit der Usv anbindung eingetragen werden.
if(@fopen($server,"r"))
{
 echo "Online!"; // Online, keine weitere Aktion erforderlich... alles ok
}
else
{
 echo "System Shutdown";
 system("./shutdown.sh"); // Diese Datei bewirkt, dass der Nas, auf dem diese ausgeführt wird, sich abschaltet.
}
?>
im selben Ordner wo die shutdown.php liegt, erstellen wir nun eine weitere Datei die shutdown.sh heißt:
am besten öffnet ihr die shutdown.sh mit dem Programm: PSPad.
und Kopiert folgenden Code:

Code: Select all

#!/bin/sh
exec >/tmp/output_of_script 2>&1
curl --cookie-jar /tmp/sessioncookie http://nsa310/r49435,/adv,/cgi-bin/weblogin.cgi?password=XXX\&username=admin
curl --cookie /tmp/sessioncookie http://nsa310/r49435,/adv,/cgibin/zysh-cgi?c0=shutdown
rm /tmp/sessioncookie
zur Sicherheit klickt oben im Reiter auf "Format -> Unix (LF)"
damit sich keine unsichtbaren Zeichen einschleichen und Fehler in der
Ausführung der Datei ausgeschlossen werden können.

prüft noch einmal die richtige Adresse/Pfad dessen Nas auf dem Ihr die Dateien liegen habt,
euer Admin Passwort müsste hier auch noch angepasst werden.
sollte das erledigt sein, Datei Speichern und schließen.

wir haben also die shutdown.php, die prüft ob der Nas der mit der USV verbunden, noch Eingeschaltet/Online ist oder nicht,
wenn nicht wird die shutdown.sh ausgeführt und der Nas ohne USV Anbindung wird heruntergefahren.

so weit so gut und an sich eine tolle Sache,
aber nicht wirklich sinnvoll, da wir dies immer! manuell prüfen müssten...

jetzt kommt das Paket Tweaks von Mijzelf ins spiel, dieses beinhaltet auch Crond.
mit Cron, können wir den Nas (ohne USV Anbindung) selbst die Aufgabe erteilen,
zu prüfen ob der Hauptnas mit der USV Anbindung noch Online ist.

Öffnet Tweaks im Paketmanager (neue Webseite).
weiter zum Link: Cron daemon
aktiviert Enable crond

in das Eingabefeld - diesen Code einfügen: (den Zielpfad anpassen)

Code: Select all

* * * * * wget -q -O /dev/null http://localhost/web/sh/shutdown.php
Speichern.

Crond führt nun jede Minute, die shutdown.php aus.
sollte der Hauptnas durch die Usv nun abgeschalten sein,
erkennt die shutdown.php dies und schaltet den Zweitnas ebenso ab.

dies kann auf weitere Nas im Netzwerk angewandt werden!

kleiner Wermutstropfen:
solltet ihr den Hauptnas manuell abschalten wollen,
empfehle ich alle Crond der anderen Geräte zu deaktivieren, anderenfalls schalten sich die Nas auch ab ;)

ich hoffe das hilft dem einen oder anderen
zumindest mit einer USV, die Geräte bei einem Stromausfall zu schützen.

einen besonderen dank geht an Mijzelf !
der mir im alten! Forum mit seinen Kenntnissen und Erfahrungen sehr geholfen hat.