![]() |
Brauche Hilfe bei Server-Shutdown "Programm"
Ich hoffe mal, ich bin hier richtig. Ich habe folgendes Problem: Ich habe einen Rechner auf dem meine ganzen Mediadateien drauf sind. Diese sind für's Netzwerk freigegeben damit die Family darauf zugreifen kann. (Das halbe Haus ist vernetzt.) Dieser Rechner ist immer an. Nun habe ich mir überlegt, dass es doch sicherlich möglich sein muß eine Batch Datei zu schreiben, die alle paar Minuten (Ich dachte da so an ca. alle 5 Minuten.) prüft ob überhaupt noch ein Rechner im Netzwerk angeschaltet ist. (Per Pingabfrage?) Also mal so wie ich mir das vorstelle in Worten dargestellt. Programm startet (Ich würde es dann in den Autostart packen.) Programm prüft erste IP-Adresse Wenn aus, dann nächste IP Adresse / Wenn an Wartezeit 5 Minuten und neu starten Das ganze dann eben mit allen IP's (Sind ca. 15) Wenn dann alle IP's geprüft sind und keiner antwortet soll der "Server" dann runterfahren. Den "Server" per Wake on Lan zu starten, ist kein Problem. Das bekomme ich selber hin und würde es dann in den Autostart der im Netzwerk befindlichen Rechner packen damit jeder wie gewohnt Zugriff darauf hat. Ich hoffe ihr könnt mir ein wenig auf die Sprünge helfen. P.S. Der "Server" läuft auf Win7 falls das wichtig ist. |
Und wie lautet jetzt deine Frage?
|
Ich vermute mal er will wissen wie man die Batchdatei schreibt die sein Vorhaben umsetzt?
mfg, Mint. |
Zitat:
192.168.178.X Das X lässt du in jedem schritt durch eine Schleife eins hochzählen. EDIT:Eine andere Möglichkeit wäre vllt die IPs in einer Datei z.B IPliste.txt abzulegen und die IPs daraus zu nehmen. Das Ergebnis eines Pings überprüfst du (laut Google) so: Ping Varibale_die_die_IP_enthält | find "Reply" if errorlevel 1 -Anweisung- else -Anweisung2- In -Anweisung- könntest du z.B bei einen Negativen Ping eine Variable hochzählen lassen, ist die Variable nach dem Durchlaufen aller Pings gleich der Anzahl an Rechner schaltet sich der Server aus. In -Anweisung2- baust du dann das warten ein (laut Google) so: ping -n 300 127.0.0.1>nul das Bewirkt eine Verzögerung von 300 Sekunden, danach dann eben neustarten. Nur mal so als erste Idee habe selsbt schon ewig nichts mehr mit Batch gemacht und ich meine mich zu erinnern dass die Batchbefehle unter win7 nicht mehr so funktionieren, deshalb können die Codebeispiele evtl auch nicht funktionieren. |
Microsoft Windows war als Server-OS schon immer eher ungeeignet - zumal mal (wenn überhaupt) dann auch eine Serverversion nutzen sollte - in den Desktop-Versionen von Winblows gibt es zuviele unberechenbare Faktoren und Angriffspunkte.
Ich würde -insbesondere in Hinsicht auf die Anforderungen- unbedingt Linux empfehlen, dort ist die Aufgabe auch nativ bzw. deutlich einfacher umsetzbar - die PowerShell erfordert mitunter unfassende Kenntnisse über VB, die PS selbst und sogar COM (wenn es komplexer werden soll) ... nun .. ein derartiges S***** wäre wohl mit VB auch recht leicht, hat man erstmal die Kenntnisse dazu. Unter Unix kann man ganz einfach ein S***** über die Crontab starten : Code:
*/5 * * * * su -c /s***** || halt Code:
#!/bin/bash |
nachträgliche Anmerkung : vermutlich müsste das 127.0.0.1 in Anführungszeichen stehen ... ich habs jetz nich getestet; im Grunde funzt das S***** aber.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:07 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.