myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

Brauche Hilfe bei Server-Shutdown "Programm"

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 13.01.11, 17:13   #1
freddy79
Erfahrener Newbie
 
Benutzerbild von freddy79
 
Registriert seit: Oct 2009
Beiträge: 156
Bedankt: 98
freddy79 ist noch neu hier! | 0 Respekt Punkte
Standard 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.
__________________
freddy79 ist offline   Mit Zitat antworten
Ungelesen 13.01.11, 18:13   #2
gosha16
Banned
 
Registriert seit: Sep 2009
Ort: /root/
Beiträge: 825
Bedankt: 640
gosha16 ist noch neu hier! | 0 Respekt Punkte
Standard

Und wie lautet jetzt deine Frage?
gosha16 ist offline   Mit Zitat antworten
Ungelesen 13.01.11, 18:29   #3
Mint
Ist öfter hier
 
Benutzerbild von Mint
 
Registriert seit: Dec 2009
Beiträge: 245
Bedankt: 80
Mint gewöhnt sich langsam dran | 48 Respekt Punkte
Standard

Ich vermute mal er will wissen wie man die Batchdatei schreibt die sein Vorhaben umsetzt?

mfg, Mint.
__________________
Zitat:
Zitat von John Lennon
Musik gehört allen. Nur die Plattenfirmen denken, dass man sie besitzen kann.

Mint ist offline   Mit Zitat antworten
Ungelesen 13.01.11, 18:52   #4
spartan-b292
Echter Freak
 
Benutzerbild von spartan-b292
 
Registriert seit: Mar 2010
Ort: /home/spartan-b292
Beiträge: 2.857
Bedankt: 1.700
spartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punkte
Standard

Zitat:
Programm prüft erste IP-Adresse
Den Adressraum kennst du vermtl. Also würde ich die IP in eine Variable legen die die IP etwa so speichert:
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.
__________________
"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety"
spartan-b292 ist offline   Mit Zitat antworten
Ungelesen 13.01.11, 21:04   #5
tha_specializt
`
 
Registriert seit: Nov 2010
Ort: Zuhause
Beiträge: 142
Bedankt: 37
tha_specializt ist noch neu hier! | 0 Respekt Punkte
Standard

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
/s*****:
Code:
#!/bin/bash

host=127.0.0.1
port="22"
wc=`which wc`
nmap=`which nmap`
ping=`which ping`
cut=`which cut`
grep=`which grep`
tr=`which tr`
keyword="open"
echo=`which echo`

success="Client online"
failure="Client offline"

_portscan()
{
        $nmap -PN -p$port -R $host | $grep $port | $cut -d ' ' -f2 | $grep $keyword > /dev/null && { echo $success; return 0; } || { echo failure; return 1; }
}

_ping()
{
        $ping $host -i 5 -qc 3 -W 15 && return 0 || return 1
}

for ((  i = 1 ;  i <= 20;  i++  ))
do       
        _ping && _portscan && exit 0
done

exit 1
--> das S***** prüft zusätzlich nen TCP-Port den du angibst ... kann man weglassen, ausserdem müsste man noch das Iterieren der IP-Liste einbauen aber das is ja kein Problem, die Schleife hat man ja bereits
tha_specializt ist offline   Mit Zitat antworten
Ungelesen 14.01.11, 23:39   #6
tha_specializt
`
 
Registriert seit: Nov 2010
Ort: Zuhause
Beiträge: 142
Bedankt: 37
tha_specializt ist noch neu hier! | 0 Respekt Punkte
Standard

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.
tha_specializt ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:19 Uhr.


Sitemap

().