teck90
Goto Top

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:

@ 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]

Content-Key: 161339

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

Printed on: April 20, 2024 at 06:04 o'clock

Member: Snowman25
Snowman25 Feb 22, 2011 at 16:04:14 (UTC)
Goto Top
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
Member: Skyemugen
Skyemugen Feb 22, 2011 at 16:06:19 (UTC)
Goto Top
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)
Member: Teck90
Teck90 Feb 22, 2011 at 16:38:41 (UTC)
Goto Top
@ Snowman25

Der 2. Server ist ja nicht an der USV angeschlossen bzw. kriegt keine Infos von der USV ... da müsste man soweit ich weis ne Netzwerkkarte für die USV kaufen aber das will der Kunde nicht ausgeben.

Nur der 1. Server ist per Parallelkabel an der USV angeschlossen und erhält INFOS von dieser.

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
Member: Skyemugen
Skyemugen Feb 22, 2011 at 16:48:43 (UTC)
Goto Top
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

Aloha,

shutdown /?
soll ja manchmal beim Verständnis helfen (in der Konsole ^.^)

greetz André
Member: Friemler
Friemler Feb 22, 2011 at 20:09:23 (UTC)
Goto Top
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
Member: Teck90
Teck90 Feb 22, 2011 at 20:15:31 (UTC)
Goto Top
Sry hab ich vergessen zu schreiben.

Der 2. Server ist an der USV angeschlossen aber nur per Stromkabel (wird also von der USV mit versorgt) aber nicht per parallel Kabel um von der USV gesagt zu bekommen das er auch runterfahren soll. Vlt gibt es ja auch ne andere möglichkeit. Das der 2. Server runterfahren soll.
Member: Snowman25
Snowman25 Feb 23, 2011 at 09:50:22 (UTC)
Goto Top
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:
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
Member: Teck90
Teck90 Feb 23, 2011 at 10:31:07 (UTC)
Goto Top
@Snowman

O.k. da es eine USV von APC ist wird das denke ich so funktioneiren wie du es geschrieben hast. Werde es dan ausprobieren.
Member: mathe172
mathe172 Feb 23, 2011 at 13:58:45 (UTC)
Goto Top
Hallo Teck!

Da es offensichtlich noch niemandem aufgefallen ist (oder ich sehs nicht...):
if exist X:TESTRunterfahrenTestbild.jpg echo %DATE% %TIME% Domaincontroller ist erreichbar
goto ABBRUCH
Das goto Abbruch wird immer ausgeführt, schon klar, dass es nie zum anderen kommt...

Mathe172