andi1971
Goto Top

Energiesparen im Netzwerk, Netzwerk per Batch steuern

Hallo zusammen,
ich hoffe, ihr könnt mir bei meiner Aufgabenstellung helfen. Für die Unterstützung, danke ich im voraus.

Beschreibung Netzwerk:
Fritzbox 7170
4x Client (1x XP Home, 1x XP Prof., 2x XP MCE2005
1x Server für Mails und Files (WIN 2000)

Beschreibung Kommunikation:
Die Clients greifen per IMAP auf den Server auf dem Hamster als Mailserver läuft zu. Außerdem dient der Server als zentrale Dateiablage für alle Clients mit RAID Datensicherung.

Problem:
Der Server läuft entweder durch (24/7) oder muss von Hand bzw. mit psshutdown heruntergefahren werden.
Er kann auch per Wol wieder gestartet werden.

Was ich erreichen möchte:
Der Server soll an sein, solange ein Client an ist, wenn der letzte Client ausgeschaltet wird soll auch der Server runterfahren.
Ich würde das gerne per Batch erledigen, allerdings kenne ich mich damit nicht gut aus.
Folgendes soll Ablaufen:
1. Erster Client wird eingeschaltet. Batchdatei wird gestartet und schaltet per Wol den Server ein (das ist noch einfach), das gleiche kann bei den restlichen Clients auch ablaufen, die weiteren Wol-Pakete stören ja nicht.
2. (Und jetzt wird es für mich schwierig) Ein Client wird heruntergefahren. Eine Batchdatei soll prüfen ob im Netz außer dem Server noch andere Clients online sind. Wenn ja, soll nichts weiter geschehen und der Client geht aus. Wenn nein, soll der psshoutdown Befehl an den Server gesendet werden und danach aus gehen.

Folgende Dinge bekomme ich nicht hin:
1. Wie prüfe ich ob andere Clients noch aktiv sind und programmiere dies?
2. Wie rufe ich eine Batchdatei beim Herunterfahren auf?

Ich stelle mir vor, dass ich zwei Batchdateien habe, welche ich auf allen Clients installiere. Die erste für den Wol, die ich mit dem Autostart des Client starte, und eine zweite die das Herunterfahren steuert.

Ich hoffe, ihr habt verstanden vorauf es mir ankommt und könnt mir helfen.

Danke und Gruss,

Andi

Content-ID: 115676

Url: https://administrator.de/contentid/115676

Ausgedruckt am: 24.11.2024 um 08:11 Uhr

kaiand1
kaiand1 10.05.2009 um 13:36:36 Uhr
Goto Top
Du könntes am Server per Cronjob den Ping auswerten.
Ist der Ping postiv auf mind. ein Client bleibt er an
Ist er negativ geht der Server init 0
vbMaxi
vbMaxi 10.05.2009 um 16:46:17 Uhr
Goto Top
Hi,
Ping ist das Stichwort, ich glaube hier im Forum hatten wir schon zig fragen über die auswertung des ping befehls in batch dateien. Einfach mal SuFu benutzten. Wenns doch net drin sein sollte, entschuldige ich mich... Also vom ablauf her würd ich des so machen auf den Server ne Textdatei legen, wo alle Clients drinstehen. Diese Liste wir per Ping und dem Batchscirpt ausgewertet. Wenn alle PCs der Liste aus sind, dann soll der Server via psshutodwn herunterfahren. Ich hab so n ähnliches script mal auf einem Linux Server laufen gehabt...

lg Maxi
andi1971
andi1971 10.05.2009, aktualisiert am 18.10.2012 um 18:38:09 Uhr
Goto Top
Hi Maxi,

super, danke schön, das wars.
Hab über die Suche jetzt auch was passendes gefunden. Ohne deinen Tip wäre ich aber nicht auf die Idee gekommen, das von der Server-Seite zu betrachten. Ich war so auf die Clients fixiert....

Damit habe ich meine Lösung umgesetzt:
Mehrere Clients pingen (Batch)

Grüsse,
Andi
77559
77559 11.05.2009 um 17:17:02 Uhr
Goto Top
Das geht auch etwas effizienter, wenn auch nur ein PC an ist kann er ja gleich den batch beenden oder erneut in eine Zeitschleife gehen:

:: ClientCheck.cmd ::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off
For %%A in (192.168.174.x1
            192.168.174.x2
            192.168.174.x3
            192.168.174.x4
            ) Do ping %%A -n 1 -l 10 >nul && goto :EOF

rem ---Server geht schlafen---
:: %windir%\System32\rundll32.exe powrprof.dll,SetSuspendState
:: Shutdown -s -f -t 0 -d u:08:15 -c "Energiesparen"  

Hierbei macht es Sinn den "aktivsten" PC nach vorne zu setzen; dann braucht nicht so viel probiert werden.

Gruß
LotPings