ShutDown im Netzwerk

OP (Firma: Frickelhauptquartier) #4662593
Lesenswert?

Hallo in die Runde!
Ich habe ein Heimnetzwerk mit einem NAS auf Windows7 Basis und daran 
angeschlossen einen HTPC, PC (jeweils W7) und Raspberry. Jetzt wollte 
ich es so einrichten, das der NAS runterfährt, wenn keiner der anderen 
Rechner eingeschaltet ist. Ich hab bei Google eigentlich nur Lösungen 
für einen Rechner gefunden. Das hilft mir hier aber nicht weiter. Kann 
evtl jemand weiterhelfen?

danke
Thomas
#4662660
Lesenswert?

Thomas G. schrieb:
> Als schmückendes Beiwerk LcdHype. Sonst dient das ganze Werk nur als
> NAS.

War nicht die gesuchte Antwort auf:

Daniel schrieb:
> Was läuft denn auf dem Nas?

Die Frage läuft vielmehr darauf hinaus, was für ein Betriebssystem da 
drauf ist.

Grobe Vermutung wäre irgend ein zusammengeschnittenes Linux. Okay. Dann 
geht es damit weiter, was so an Zugriffen möglich ist ...

Oder nach Netiquette:
Erkläre, was du HAST (Gerät, Version, weiteres), was du damit GENAU 
machen möchtest und WAS du BISHER ausprobiert hast.
OP (Firma: Frickelhauptquartier) #4662739
Lesenswert?

Also dann zum mitschreiben:

1. Rechner, normaler PC W7-64
2. Rechner HTPC, Mini-ITX W7-64
3. "Rechner" Raspberry mit Openelec und KODI
4. Rechner, NAS auf W7-Basis

Meine Idee war jetzt das NAS pingt regelmässig die anderen Rechner an, 
und wenn alle(!) anderen aus sind, fährt das NAS auch runter.

Ich hab schon halbgare Lösungen für einen Rechner gefunden, aber nichts 
was hier passen würde. Die einzelnen Batchbefehle kenne ich  zwar in 
etwa, weiss aber nicht wie man daraus etwas programmiert.

Gute Nacht...
#4662741
Lesenswert?

Hallo Thomas ,

lass auf Deinem NAS einfach periodisch (Windows Task Scheduler bzw. 
schtasks) folgendes Script laufen:
1
set doShutdown=1
2

3
ping -n 1 HTPC
4
if %errorlevel% EQU 0 set doShutdown=0
5

6
ping -n 1 W7PC
7
if %errorlevel% EQU 0 set doShutdown=0
8

9
ping -n 1 Raspberry
10
if %errorlevel% EQU 0 set doShutdown=0
11

12
if %doShutdown% EQU 1 shutdown /s

Und ja, es bestehen noch Optimierungsmöglichkeiten....

timpi.
Gast #4665040
Lesenswert?

Thomas G. schrieb:

> Ich habe ein Heimnetzwerk mit einem NAS auf Windows7 Basis und daran
> angeschlossen einen HTPC, PC (jeweils W7) und Raspberry. Jetzt wollte
> ich es so einrichten, das der NAS runterfährt, wenn keiner der anderen
> Rechner eingeschaltet ist.

Trivial. Jedenfalls wenn man einen Account mit lokalen Admin-Rechten auf 
dem NAS hat.

Hast du den? Oder nur irgendeine Dummdödel-Webkonsole oder so'n Scheiss?
Gast #4665142
Lesenswert?

c-hater schrieb:
> Trivial. Jedenfalls wenn man einen Account mit lokalen Admin-Rechten auf
> dem NAS hat.

Ich richte mir für solche Zwecke einen Benutzer (z.B. "Shutdowner") ein 
und gebe dem speziell das Recht, das System herunterzufahren, ist 
letztlich am einfachsten und auch am sichersten, mehr muss er ja nicht 
können.

Georg
Gast #4666375
Lesenswert?

Wenn das Mainboard des NAS wake on LAN untersťützt kann man den 
Ruhezustand nach zb 10minuten aktivieren.. Jede Anfrage am Ethernetport 
weckt den Rechner wieder auf.. Ist vielleicht noch besser.
OP (Firma: Frickelhauptquartier) #4668011
Lesenswert?

Sorry für die späte Antwort,

könnte es evtl sein, dass die Rechner die auf ein WOL warten, auf den 
Ping antworten???

C:\Users\TG>ping -n 1 192.168.1.4

Ping wird ausgeführt für 192.168.1.4 mit 32 Bytes Daten:
Antwort von 192.168.1.19: Zielhost nicht erreichbar.

Ping-Statistik für 192.168.1.4:
    Pakete: Gesendet = 1, Empfangen = 1, Verloren = 0
    (0% Verlust)

Ich deute das so, dass nur im Verlustfall die Variable im Beispiel von 
Stefan L. (Danke dafür) gesetzt wird.

Thomas
Gast #4668065
Lesenswert?

Thomas G. schrieb:
> Ich deute das so, dass nur im Verlustfall die Variable im Beispiel von
> Stefan L. (Danke dafür) gesetzt wird.

Ping mit errorlevel Auswertung ist keine gute Idee, Zitat aus 
Stackoverflow:

When you ping an non accesible address in your subnet, you get an 
"unreachable" answer, with 1 packet sent, 1 packed received, 0 packets 
lost. Errorlevel is not set.

When you ping an non accesible address out of your subnet, you get a 
"timeout" answer, with 1 packet sent, 0 packet received, 1 packet lost. 
Errorlevel is set.

And, you can ping an active machine, lost packets and get an errorlevel

And, you can ping an active/inactive machine, get TTL expired and get no 
errorlevel

Better, check for content of ping response.

ping -n 1 192.168.1.1 | find "TTL=" >nul
if errorlevel 1 (
    echo host not reachable
) else (
    echo host reachable
)
Zitat Ende

Dazu kommt, dass ping auf unzähligen Systemen implementiert ist, aber 
mit einigen deutlichen Unterschieden.

Georg
OP (Firma: Frickelhauptquartier) #4669131
Lesenswert?

Georg & Stefan haben mich auf die richtige Fährte gebracht. Mit ein 
wenig
probieren wenn man erst mal weiss, wo man ansetzen muss, ist das 
herausgekommen:


set doShutdown=1

ping -n 1 192.168.1.7 | find "TTL=" >null
echo %errorlevel%
if %errorlevel% NEQ 0 set doShutdown=1

ping -n 1 192.168.1.12 | find "TTL=" >null
echo %errorlevel%
if %errorlevel% NEQ 0 set doShutdown=1

ping -n 1 192.168.1.14 | find "TTL=" >null
echo %errorlevel%
if %errorlevel% NEQ 0 set doShutdown=1

echo %doShutdown%

pause

if %doShutdown% EQU 1 shutdown /s /f

die Echo-Befehle und Pause dienen nur zur Kontrolle und können natürlich 
entfallen. (besonders Pause...)

Lässt sich wohl für eine unbegrenzte Anzahl Rechner verwenden.
Also wer es Braucht!

Zu früh gefreut; die UND-Verknüpfung fehlt (grummel...)
to be continued
Gast #4669143
Lesenswert?

gibts auf windows nmap?
[code[code]]
$ nmap -sn 192.168.2.0/24

Starting Nmap 7.01 ( https://nmap.org ) at 2016-08-02 20:22 CEST
Nmap scan report for speedport.ip (192.168.2.1)
Host is up (0.0012s latency).
Nmap scan report for server (192.168.2.2)
Host is up (0.00045s latency).
Nmap scan report for node01 (192.168.2.11)
Host is up (0.00030s latency).
Nmap done: 256 IP addresses (3 hosts up) scanned in 2.40 seconds
[code]

dann einfach nach "host is up" greppen, und wenn >1 nicht 
herunterfahren.

dann vielleicht noch in den "autostart" jedes client rechners ein WOL an 
die NAS einbauen… und wohlfühlen.
#4675447
Lesenswert?

Thomas G. schrieb:
> Zu früh gefreut; die UND-Verknüpfung  (grummel...)
> to be continued
vielleicht besser SO
1
set doShutdown=1
2
ping -n 1 192.168.1.7 | find "TTL=" >null
3
echo %errorlevel%
4
if %errorlevel% EQU 0 set doShutdown=0
5
ping -n 1 192.168.1.12 | find "TTL=" >null
6
echo %errorlevel%
7
if %errorlevel% EQU 0 set doShutdown=0
8
ping -n 1 192.168.1.14 | find "TTL=" >null
9
echo %errorlevel%
10
if %errorlevel% EQU 0 set doShutdown=0
11
echo %doShutdown%
12
pause
13

14
if %doShutdown% EQU 1 shutdown /s /f

Sascha
OP (Firma: Frickelhauptquartier) #4679885
Lesenswert?

so wird es was:


set doShutdown=0
set sd1=0
set sd2=0
set sd3=0

ping -n 1 192.168.1.4 | find "TTL=" >null

if errorlevel 1 set sd1=1

echo %sd1%

ping -n 1 192.168.1.19 | find "TTL=" >null

if errorlevel 1 set sd2=1

echo %sd2%

ping -n 1 192.168.1.17 | find "TTL=" >null

if errorlevel 1 set sd3=1

echo %sd3%

if %sd1%==1 if %sd2%==1 if %sd3%==1 set doShutdown=1

echo %doShutdown%

if %doShutdown%==1 shutdown /s /f

if %doShutdown%==0 echo Noch ein rechner an!

pause

Der Trick ist, das alles was in einer Zeile steht nacheinander 
ausgeführt wird, daraus ergibt sich die UND-Funktion;
if %sd1%==1 if %sd2%==1 if %sd3%==1 set doShutdown=1
Shutdown=1 wird nur ausgeführt, wenn er "soweit kommt"

Vielleicht kann es einer gebrauchen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren