Batch - Netzlaufwerk Datei vorhanden?
Hallo liebe Community,
seit 2 Tagen möchte ich einen Batch schreiben aber es klappt nicht.
Ich möchte gerne einen Batch schreiben der einen Win 2003 Server runterfährt wenn eine Datei in Netzlaufwerk nicht vorhanden ist. bin aber noch ein Neulingin Batch schreiben.
Wozu das Ganze?
Also der Server der an eine USV angeschlossen ist wird automatisch runtergefahren wenn der Batteriestatus nen bestimmten Wert hat. Da der 2. Server nicht an die USV angeschlossen werden kann (Kunde hat kein Geld). Wollte ich nun dafür ein Batch schreiben der dieses erledigt.
Dafür soll überprüft werden ob die Datei in einen Netzlaufwerk vorhanden ist z.B. X:TESTRunterfahrenTestbild.jpg ... Wenn sie erreichbar ist, ist alles o.k. und der Batch kann wieder geschlossen werden. Wenn aber die Datei nicht erreichbar ist weil der 1. Server schon Runtergefahren ist dann soll der 2. Server auch runterfahren. wenn es möglich ist sollen alle offenen Anwendungen vernünftig geschlossen werden.
Hier mal mein Batch:
Bei mir ist das jetzt so beim Batch egal ob das Netzlaufwerk erreichbar ist oder nicht geht der Batch immer zu und der Server fährt nicht runter. Beim Testen soll auch ein LOGFILE mitgeschrieben werden bei jeder Ausführung, aber das ist erst mal nicht so wichtig Hauptsache der Batch funktioniert. Der Batch wird alle x Minuten ausgeführt mittels Taskplaner. Da wäre auch schön wenn der Batch in Hintergrund laufen würde ... wenn das geht
Hoffe Ihr könnt mit helfen den Google hat mir geholfen das Batch schreiben einigermaßen zu verstehen. Aber nicht auf die Richtige Lösung gebracht bzw. hat es bei mir nicht klick gemacht.
MfG Teck
[Edit Biber] Codeformat. [/Edit]
seit 2 Tagen möchte ich einen Batch schreiben aber es klappt nicht.
Ich möchte gerne einen Batch schreiben der einen Win 2003 Server runterfährt wenn eine Datei in Netzlaufwerk nicht vorhanden ist. bin aber noch ein Neulingin Batch schreiben.
Wozu das Ganze?
Also der Server der an eine USV angeschlossen ist wird automatisch runtergefahren wenn der Batteriestatus nen bestimmten Wert hat. Da der 2. Server nicht an die USV angeschlossen werden kann (Kunde hat kein Geld). Wollte ich nun dafür ein Batch schreiben der dieses erledigt.
Dafür soll überprüft werden ob die Datei in einen Netzlaufwerk vorhanden ist z.B. X:TESTRunterfahrenTestbild.jpg ... Wenn sie erreichbar ist, ist alles o.k. und der Batch kann wieder geschlossen werden. Wenn aber die Datei nicht erreichbar ist weil der 1. Server schon Runtergefahren ist dann soll der 2. Server auch runterfahren. wenn es möglich ist sollen alle offenen Anwendungen vernünftig geschlossen werden.
Hier mal mein Batch:
@ echo off
if exist X:TESTRunterfahrenTestbild.jpg echo %DATE% %TIME% Domaincontroller ist erreichbar
goto ABBRUCH
if not exist X:TESTRunterfahrenTestbild.jpg echo %DATE% %TIME% Domaincontroller ist nicht erreichbar
shutdown -s -t 120
goto EXIT
:ABBRUCH
shutdown -a
goto EXIT
:EXIT
exit
Bei mir ist das jetzt so beim Batch egal ob das Netzlaufwerk erreichbar ist oder nicht geht der Batch immer zu und der Server fährt nicht runter. Beim Testen soll auch ein LOGFILE mitgeschrieben werden bei jeder Ausführung, aber das ist erst mal nicht so wichtig Hauptsache der Batch funktioniert. Der Batch wird alle x Minuten ausgeführt mittels Taskplaner. Da wäre auch schön wenn der Batch in Hintergrund laufen würde ... wenn das geht
Hoffe Ihr könnt mit helfen den Google hat mir geholfen das Batch schreiben einigermaßen zu verstehen. Aber nicht auf die Richtige Lösung gebracht bzw. hat es bei mir nicht klick gemacht.
MfG Teck
[Edit Biber] Codeformat. [/Edit]
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 161339
Url: https://administrator.de/contentid/161339
Ausgedruckt am: 23.11.2024 um 01:11 Uhr
9 Kommentare
Neuester Kommentar
Hallo @Teck90,
anderer Ansatz: Deine USV-Software lässt dich doch sicherlich ein Script bzw. Programm ausführen, wenn der Alarm ausgelöst wird. Wieso hier dann nicht einfach ein Shutdownscript für den 2. Server einfügen?
Einen Server herunterzufahren, weil eine Datei nicht erreicht werden kann ist eine blöde Idee. Da muss nur mal kurz ein kleiner Schluckauf im Netz sein und der Server fährt sich runter.
Übrigens hat auch das IF in Batch ein ELSE.
Gruß
Snow
anderer Ansatz: Deine USV-Software lässt dich doch sicherlich ein Script bzw. Programm ausführen, wenn der Alarm ausgelöst wird. Wieso hier dann nicht einfach ein Shutdownscript für den 2. Server einfügen?
Einen Server herunterzufahren, weil eine Datei nicht erreicht werden kann ist eine blöde Idee. Da muss nur mal kurz ein kleiner Schluckauf im Netz sein und der Server fährt sich runter.
Übrigens hat auch das IF in Batch ein ELSE.
Gruß
Snow
Aloha,
da ich Feierabend habe und eigentlich schon auf dem Weg nach Hause bin, nur noch zwei Hinweise:
@echo off in einer zu testenden batch ist unsinnig, sonst erfährst du gar nichts
pause hat manchmal schon geholfen, um den Inhalt der Shell zu lesen ... ergo: eof & exit sind schön, wenn man weiß, dass es funktioniert aber nicht, wenn du wissen willst, woran es hapert
greetz André
(gut eof wäre i.O. wenn du die batch nicht per Doppelklick öffnest, sondern in der Shell)
da ich Feierabend habe und eigentlich schon auf dem Weg nach Hause bin, nur noch zwei Hinweise:
@echo off in einer zu testenden batch ist unsinnig, sonst erfährst du gar nichts
pause hat manchmal schon geholfen, um den Inhalt der Shell zu lesen ... ergo: eof & exit sind schön, wenn man weiß, dass es funktioniert aber nicht, wenn du wissen willst, woran es hapert
greetz André
(gut eof wäre i.O. wenn du die batch nicht per Doppelklick öffnest, sondern in der Shell)
Zitat von @Teck90:
Gibt es vlt ordentliche Seiten wo das Batch schreiben erklärt ist? Weil kenne die ganzen gaznen sachen nicht z.b. was sich
hinter -t; -s usw. versteckt
Gibt es vlt ordentliche Seiten wo das Batch schreiben erklärt ist? Weil kenne die ganzen gaznen sachen nicht z.b. was sich
hinter -t; -s usw. versteckt
Aloha,
shutdown /?
greetz André
Hallo Teck90,
mal 'ne (ganz dumme?) Serie von Fragen:
Frage: Warum wird die Batterie der USV schwach?
Antwort: Weil aus ihr Energie entnommen wird, um Server 1 zu betreiben.
Frage: Warum wird die Batterie der USV gebraucht, um Server 1 zu betreiben?
Antwort: Weil der Netzstrom ausgefallen ist.
Frage: Was macht Server 2, der nicht an die USV angeschlossen ist, bei Stromausfall?
Antwort: Sofort abschalten.
Frage: Warum soll der bereits abgeschaltete Server 2 nochmal abgeschaltet werden, wenn die Batterie der USV schwach wird?
Antwort: ????
Gruß
Friemler
mal 'ne (ganz dumme?) Serie von Fragen:
Frage: Warum wird die Batterie der USV schwach?
Antwort: Weil aus ihr Energie entnommen wird, um Server 1 zu betreiben.
Frage: Warum wird die Batterie der USV gebraucht, um Server 1 zu betreiben?
Antwort: Weil der Netzstrom ausgefallen ist.
Frage: Was macht Server 2, der nicht an die USV angeschlossen ist, bei Stromausfall?
Antwort: Sofort abschalten.
Frage: Warum soll der bereits abgeschaltete Server 2 nochmal abgeschaltet werden, wenn die Batterie der USV schwach wird?
Antwort: ????
Gruß
Friemler
Also nochmal...
Auf dem 1. Server wird i-eine Art von Software laufen, die den Status der USV überwacht (z.B. PowerChute, abhängig von der USV).
Diese Programme erlauben es einem normalerweise, ein Programm bzw. Script auszuführen, wenn der Alarm ausgelöst wird (=Strom weg, USV läuft im Batteriebetrieb).
Dieses Script soll dann deinen 2. Server herunterfahren. Mit folgendem Befehl:
mit verzweifeltem Gruß
Snow
Auf dem 1. Server wird i-eine Art von Software laufen, die den Status der USV überwacht (z.B. PowerChute, abhängig von der USV).
Diese Programme erlauben es einem normalerweise, ein Programm bzw. Script auszuführen, wenn der Alarm ausgelöst wird (=Strom weg, USV läuft im Batteriebetrieb).
Dieses Script soll dann deinen 2. Server herunterfahren. Mit folgendem Befehl:
shutdown -s -m \\Server2 -t 120 -c "Die Stromversorgung durch das Stromnetz wurde unterbrochen. Um das System vor Datenverlust zu schützen, wird es nun heruntergefahren" -d u:6:11
mit verzweifeltem Gruß
Snow