davidmue
Goto Top

Server Neu starten und anpingen

Hallo liebe Gemeinde,

ich habe in der Schule eine kleine Skripting Aufgabe bekommen wo ich mir leider nicht zu helfen weiß.
Ich hoffe Ihr könnt mir da vlt. weiter helfen.

Aufgaben Stellung:
Der Server X soll Neu gestartet werden, während dessen soll ein Fenster aufgehen mit der aufschrift "Dieser Server wird in 30 Sek Neu gestartet.

Wenn man das Skript ausführt soll ein Ping gesendet werden, solange der Server wieder oben ist.
Der Server soll mir nur zurück geben wann er wieder zu erreichen ist.
d.h. Der Server rebootet kommt dann wieder hoch und dann soll er mir sagen, dass er wieder da ist. face-smile
Hier ist auch mein Problem ich kann den zwar sagen dass er gepingt werden soll, aber der Pingt den Server einmal an bevor er rebootet.

Hier mein bisheriges Skript (Medico-Win7 = Server) :


@echo off

shutdown /r /M \\MEDICO-WIN7 /t 30 /c "Dieser Server wird in 30 Sek neugestartet" /d p:0:0  

set i = medico-win7

ping -n 1 medico-win7 >null

if errorlevel == 1 goto NOT


if errorlevel == 0 goto OK


:NOT
echo Server down
goto ENDE

:OK
echo Server Up
goto ENDE

:ENDE


Besten Dank im Voraus

Gruß

David

Content-Key: 254071

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

Printed on: April 26, 2024 at 21:04 o'clock

Member: langustini
langustini Nov 06, 2014 at 15:42:49 (UTC)
Goto Top
Hi David,

da steht "ping -n 1" d.h. dass er auch nur ein mal pingt. "ping -t" wäre ein Dauerping.

Gruß
Member: DavidMue
DavidMue Nov 06, 2014 at 15:57:32 (UTC)
Goto Top
Danke für die Schnelle Antwort, aber ich hatte das schon ausprobiert aber leider klappt dies nicht so ganz.

Ich habe die Fragestellung falsch formuliert Entschuldigung. Der Server soll mir nur zurück geben wann er wieder zu erreichen ist.
d.h. Der Server rebootet kommt dann wieder hoch und dann soll er mir sagen, dass er wieder da ist.

wie wäre es eurer Meinung am besten mit einer Ping schleife ?


Gruß
Member: Shioku
Shioku Nov 06, 2014 at 16:07:42 (UTC)
Goto Top
Hallo,

am besten mit 2 Schleifen.

shutdown senden
(Jetzt braucht der Server ne Weile bis er auch wirklich heruntergefahren ist)
Solange in einer Schleife pingen bis er nicht erreichbar ist = Ausgabe: Server down
Dann in einer Schleife darauf warten, dass wieder ein Ping möglich ist = Server up

(Bedenke aber, dass der Server durch einen Ping erreichbar ist obwohl bestimmte Dienste noch nicht laufen/bereit sind)
Member: DavidMue
DavidMue Nov 06, 2014 at 18:11:33 (UTC)
Goto Top
Hey danke für die Antwort,

aber ich habe wirklich nicht die geringste Ahnung wie das Syntaktisch aussehen soll.
Ich kann dir zwar von der Logik folgen aber ich weiß nicht wie ich das am besten schreiben soll.

Skripting und Programmieren ist nicht wirklich so mein ding face-sad

kannst du mir nochmal helfen bitte ?
Member: DavidMue
DavidMue Nov 06, 2014 at 18:17:04 (UTC)
Goto Top
while ping -t i > 0 && errorlevel == 1
do
echo Server down

So ungefair ?
Member: schmitzi
Solution schmitzi Nov 06, 2014, updated at Nov 07, 2014 at 06:41:44 (UTC)
Goto Top
Hi,

die Batch oben sollte schon gehen, nur musst Du am Ende von dem ":not" kein Goto Ende machen
sondern GOTO REPING und :REPING als Sprungmarke in Zeile 6 einsetzen,
damit er im Falle des NOT auch wieder nach oben springt und weiterpingt (bis OK eintritt)

Vor dem ECHO Server UP würde ich noch ein
ping -n 180 localhost >NUL setzen
damit die UP-Meldung sich noch 3 Minuten Zeit damit lässt
(weil der Server nach dem ersten Ping ja noch nicht komplett hochgefahren ist.

Gruss RS
Member: Shioku
Solution Shioku Nov 06, 2014, updated at Nov 07, 2014 at 06:41:38 (UTC)
Goto Top
@echo off

set ZielSystem=medico-win7

REM ***Shutdown***
shutdown /r /M \\%ZielSystem% /t 30 /c "Dieser Server wird in 30 Sek neugestartet" /d p:0:0  
echo Signal zum herunterfahren an %ZielSystem% gesendet

REM ***Wait for Server down***

echo Warte auf Server shutdown
:LOOP1
ping -n 5 localhost >NUL
ping -n 1 %ZielSystem% >NUL
if %errorlevel% == 0 goto LOOP1
echo Server down

REM ***Wait for Server up***
echo Warte auf Antwort des Servers
:LOOP2
ping -n 5 localhost >NUL
ping -n 1 %ZielSystem% >NUL
if %errorlevel% == 1 goto LOOP2

echo Server up

pause
Member: DavidMue
DavidMue Nov 07, 2014 at 06:41:35 (UTC)
Goto Top
Vielen vielen dank face-smile

hat mir echt weiter geholfen.