Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Ping-Batch Problem, welche Werte gibt W2K Server zurück?

Frage Microsoft

Mitglied: MeNeCK

MeNeCK (Level 1) - Jetzt verbinden

05.01.2007, aktualisiert 18:55 Uhr, 6441 Aufrufe, 7 Kommentare

Hallo allerseits.
Ich habe ein kleines Problemchen bei der Erstellung einer Batchdatei, bzw vielmehr den unterschiedlichen Rückgabewerten von XP und W2K Server.
Da wir momentan an einem unserer Linux Server ein Problem haben (Ja, auch das gibt es) und dieser in unregelmäßigen Abständen abstürzt wollte ich "auf die schnelle" eine kleine Ping-Batch Datei erstellen die in gewissen Abständen einen Ping Befehl auf den besagten Server schickt und bei einem Ausfall eine SMS auf mein Bereitschaftshandy schickt.
Soweit so gut, alles zusammengeschrieben (Auf meiner XP WS), kappte auch.
Nun die Datei rüber auf den W2K Server, auf dem ich die Bat gerne laufen hätte und was ist?
Richtig, sie tut es nicht mehr, das heißt W2K liefert irgendwelche anderen Werte (Wenn überhaupt?) zurück als XP, kann mir vieleicht einer von euch weiterhelfen oder einen Tipp geben?
Bei dem Serverbetriebssystem handelt es sich wie bereits gesagt um ein Windows 2000 Server mit aktuellstem SP und Updates.
Hier der Code der Batch Datei:

01.
:START 
02.
ping X.X.X.X >>ping.txt 
03.
if %errorlevel% == 0 (goto 2) 
04.
echo ==============================>>ping.txt 
05.
 
06.
goto 1 
07.
 
08.
:1 
09.
echo Keine Erreichbarkeit Liserv3: >>ping.txt 
10.
echo %date% >>ping.txt 
11.
echo %time% >>ping.txt 
12.
 
13.
setlocal 
14.
 
15.
set Empfaenger=01712345678@T-D1-SMS.de 
16.
set Absender=Absender@Adresse.de 
17.
set Betreff="Ausfall Linux Server" 
18.
 
19.
rem Mail verschicken 
20.
blat \\Servername\Verzeichnis\ServerAusfall.txt -to %empfaenger% -server X.X.X.X -i %absender% -f %absender% -s %betreff% 
21.
 
22.
endlocal 
23.
 
24.
:2 
25.
sleep 10 
26.
goto START

Auch für andere Lösungsansätze habe ich natürlich immer ein offnes Ohr!
Ich könnte natürlich auch einfach alles in eine Log schreiben lassen und dann wiederum diese Log durchsuchen und auswerten lassen, aber das ist meiner Meinung nach nicht gerade die schönste Lösung.

Schonmal vielen dank für die Hilfe.
Wünsche euch noch einen schönen Arbeitstag.

mfg
Marco
Mitglied: bastla
05.01.2007 um 12:41 Uhr
Hallo MeNeCK und willkommen im Forum!

W2000 scheint tatsächlich etwas seltsame Errorlevel beim Ping zu liefern - als Alternative wurde irgendwann hier im Forum hrPING genannt.

HTH
bastla
Bitte warten ..
Mitglied: Biber
05.01.2007 um 13:00 Uhr
Moin MeNeCK,

einige der von M$ ausgelieferte Ping.exe-Versionen haben den Bug das Feature das Verhalten, dass kein verwertbarer Errorlevel gesetzt wird. War bei Win NT mal so, bei frühen W2K-Versionen, bei XP dann wieder nicht...

However, wenn der Errorlevel nicht direkt verwertbar ist, musst Du über Bande spielen und nach dem Vorkommen einen bestimmten Strings in der Text-Rückgabe der Ping.exe suchen.
Dazu wird oft empfohlen:
01.
ping X.X.X.X|find "Antwort">nul || echo Server X.X.X.X nicht erreichbar  
02.
-oder- 
03.
ping X.X.X.X|find "Reply">nul || echo Server X.X.X.X nicht erreichbar  
04.
- da es die Ping ja in sprachabhängigen Varianten gibt.
Ich empfehle die sprachunabhängige Prüfung auf den String "100%", der auch in einer mexikanischen oder chinesischen Ping.exe auftuchen wird, wenn 100% der Versuche in die Grütze gegangen sind.
01.
:SleepAndTryAgain 
02.
Sleep 10 
03.
ping X.X.X.X|find "100%">nul && goto NoPingResponse 
04.
:: hier normal weiter.... Server antwortet... 
05.
... 
06.
goto SleepAndTryAgain 
07.
 
08.
:NoPingResponse 
09.
echo %date% %time% Server X.X.X.X nicht erreichbar  >>ping.txt  
10.
.... 
11.
goto SleepAndTryAgain
Gruß
Biber
Bitte warten ..
Mitglied: MeNeCK
05.01.2007 um 13:28 Uhr
Das sieht doch schon sehr gut aus.

Ich danke dir Biber, mit dem String hats problemlos geklappt.
Ich vermutete auch erst einen Fehler in der Ping.exe den du mir oben auch "bestätigt" hast, nur hat es mich sehr verdutzt, dass es auch unter einem meiner W2K3 Server nicht funktioniert hat (Inkl Sp1 und Updates).

Aber nungut, seis drum, es klappt wie es soll, danke nochmal!
Hier für die "Nachwelt" nochmal der Code wie man eine solche Batch Datei gestalten kann:
01.
:Start 
02.
REM Starten des Pingbefehls auf Server  
03.
ping 192.168.0.0|find "100%">nul && goto Error 
04.
Sleep 60 
05.
goto Start 
06.
 
07.
 
08.
:Error 
09.
REM Schreiben einer ErrorLog Datei 
10.
echo Keine Erreichbarkeit Liserv3: >>Serverausfall.txt 
11.
echo %date% >>Serverausfall.txt 
12.
echo %time% >>Serverausfall.txt 
13.
 
14.
 
15.
setlocal 
16.
 
17.
set Empfaenger=017123456789@T-D1-SMS.de 
18.
set Absender=Meine.Adresse@Firma.de 
19.
set Betreff="Ausfall Server XYZ" 
20.
 
21.
REM Versenden der Mail an Bereitschaftshandy 
22.
blat \\Server\Verzeichnis\TextDerMail.txt -to %empfaenger% -server Exchangeserver -i %absender% -f %absender% -s %betreff% 
23.
 
24.
endlocal 
25.
Sleep 60 
26.
goto Start
Na dann .... danke für die Hilfe und das nette aufnehmen.

mfg
Marco
Bitte warten ..
Mitglied: geTuemII
05.01.2007 um 15:10 Uhr
Hallo MeNeCK, moin Biber,

ich halte die Abfrage 100% für suboptimal, da ihr so evtl. bei hoher Netzwerklast eine Server-Ausfall-Mail bekommt. Und das ist doch nicht im Sinne des Erfinders, oder?

Was spricht eigentlich gegen die sprachabhängige ODER-Abfrage?

01.
set pingok=1 
02.
 
03.
ping X.X.X.X|find "Antwort">nul || set pingok=0 
04.
ping X.X.X.X|find "Reply">nul ||  set pingok=0 
05.
 
06.
if (pinkgok)==(0) (echo Server X.X.X.X nicht erreichbar)
@Biber: Nimm das bitte mal als Vorschlag (und dich der Syntax an )

geTuemII
Bitte warten ..
Mitglied: Biber
05.01.2007 um 15:59 Uhr
Moin geTuemII,
ich halte die Abfrage 100% für suboptimal
Ist ja auch nur ein Batch, kein Satellitensteuerungsprogramm....

Die "100%", die ich prüfe, werden nur und ausschließlich angezeigt als (dt. Version) "100% Verlust", was nur vorkommt, wenn alle gesendeten Datenpakete in die Tonne statt an den Server gesendet werden.
Beispiel für existierenden und erreichbaren Server wäre
01.
$cmd$ping /n 1 www.russenschlampen.de 
02.
 
03.
Ping www.russenschlampen.de [217.111.100.215] mit 32 Bytes Daten: 
04.
 
05.
Antwort von 217.111.100.215: Bytes=32 Zeit=35ms TTL=55 
06.
 
07.
Ping-Statistik für 217.111.100.215: 
08.
    Pakete: Gesendet = 1, Empfangen = 1, Verloren = 0 <b>(0% Verlust),</b>
Und "100% Verlust" kann -unabhängig von der Netzwerklast- wirklich nur bei Nicht-Erreichbarkeit im Text enthalten sein.
Du bist wahrscheinlich von einer Prüfung auf "100% Erfolg" ausgegangen - in dem Fall würde ich Dir Recht geben.

Gruß
Biber
P.S. Zu Deiner Syntax:
Mein Beispiel mit der chinesischen Ping.exe hat Dich vielleicht nach Südost-Asien versetzt...
01.
if (pinkgok)==(0) ...
Bangkok kenn ich (vom Namen her), aber pingkok... auch so eine schwäbische Spezialität?
01.
if (%pingok%)==(0) ...
............
[Edit]
Außerdem: Wenn er eine "deutsche" Ping-Version im Einsatz hat, dann geht es schief:
01.
ping X.X.X.X|find "Antwort">nul || set pingok=0 
02.
REM "Antwort" hat er gefunden.. %pingok% bleibt, wie es war... 
03.
ping X.X.X.X|find "Reply">nul ||  set pingok=0 
04.
REM ...aber "Reply" wird er NIEMALS finden... und setzt jetzt den %pingok% auf 0....<i>Works as designed..</i>
[/Edit]
Bitte warten ..
Mitglied: geTuemII
05.01.2007 um 18:31 Uhr
Hallo Biber,

Ist ja auch nur ein Batch, kein Satellitensteuerungsprogramm....

was? Ich dachte, mit weniger gibst du dich gar nicht ab?

Die "100%", die ich prüfe, werden nur und ausschließlich angezeigt
als (dt. Version) "100% Verlust"

Du hast völlig recht, das war mir völlig entgangen...

Ping www.russenschlampen.de

Ich liebe deine Beispiele ;)

Du bist wahrscheinlich von einer Prüfung auf "100% Erfolg"
ausgegangen -

- die aber so gar niemals nicht angezeigt wird --> Ich ziehe meinen Beitrag vollinhaltlich zurück!

Mein Beispiel mit der chinesischen Ping.exe hat Dich vielleicht nach Südost-Asien
versetzt...

Schön wärs, nach 2 Wochen Urlaub bin ich urlaubsreif...

[Bangkok vs. pingkok -- schwäbische Spezialität?]
<beiseite> Irgendwann krieg ich ihn wegen dieser Quotenmarderei! </beiseite>
Lieber Biber, du weißt doch, daß das eher Maultaschen und Spätzle sind (und noch ein paar andere Sachen, die wir aber vor so auswärtigen lieber geheim halten).

Außerdem: Wenn er eine "deutsche" Ping-Version im Einsatz
hat, dann geht es schief:

Ich wußte doch, warum du drüberlesen solltest <ginz>

geTuemII
Bitte warten ..
Mitglied: Biber
05.01.2007 um 18:55 Uhr
@geTuemII
<ginz>
Immer noch gedanklich in Südost-Asien? Und muss es dann nicht <glinz> heißen?
Ich liebe diesen schwäbischen Dialekt...
[Ich hoffe, wenn ich weiter so charmant bin, bekomm ich bestimmt ein paar Maultaschen,,,]

Schönen Abend und liebe Grüße aus Bremen
Biber
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Batch Problem bei einer For Schleife (2)

Frage von Juergen42 zum Thema Batch & Shell ...

Windows Server
gelöst Etwas schräges Problem im TCPIP (Windows Server) (8)

Frage von emeriks zum Thema Windows Server ...

Batch & Shell
gelöst Spezielles Batch Problem mit Zahlen 20 + 29 (2)

Frage von narthan zum Thema Batch & Shell ...

Windows Server
Dynamics CRM 2016-APP gibt HTTP Error zurück

Frage von Lagoles zum Thema Windows Server ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...