Veröffentlicht 26. Juli 201015 j Unser Monitoring-Systen kann über einen Monitoring-Agenten auf den Servern das Script ausführen. Die Konsolenausgabe gibt der Agent dann an das Monitoring-System zurück. Die Werte hinter der Pipe ("|perfdata=...") lassen sich statistisch auswerten. Ziel ist es, dass das Script in die Konsole zurückgibt "Host %Host% erreichbar|perfdata=%MS%;0;0" oder, falls der Ping nicht erfolgreich war "CRITICAL: %Host% nicht erreichbar|perfdata=0;0;0" und den zurückgegebenen Error-Code mit zurückgibt (aus %errorlevel%). Ich hab leider nicht viel Ahnung von Batch-Scripten. Vielleicht kann sich ja jemand mit Ahnung mal bei mir melden.
26. Juli 201015 j Dann musst du den Ping-Befehl aufrufen, den %errorlevel% auswerten und je nachdem, ob da 0 oder 1 drinsteht, einen Text ausgeben lassen.
27. Juli 201015 j Autor set Host=xxx.xxx.xxx REM set Host=xxx.xxx.xxx ping -n 1 %Host% > NUL set result = %errorlevel% soweit bin ich bis jetzt.
27. Juli 201015 j Und jetzt die Variable "result" mittels IF-Anweisung auswerten und je nach dem, welchen Wert diese hat, deinen gewünschten Text ausgeben.
27. Juli 201015 j Autor @echo off set Host=xxx.xxx.xxx REM set Host=xxx.xxx.xxx ping -n 1 %Host% > NUL set result = %errorlevel% if %errorlevel% = 0 ( echo Host is da ) if %errorlevel% = 1 ( echo Host ist nicht da ) ist das so korrekt? wenn ja wie macht man es das sich die cmd nicht gleich wieder schließt, sondern man sich das ergebnis angucken kann?
27. Juli 201015 j Ich würde das mit einer IF-Anweisung und einem zugehörigen ELSE machen, da dann auf jeden Fall auch %errorlevel%'s ungleich 0/1 abgefangen werden (bin mir nicht sicher, ob ping.exe das macht). ist das so korrekt? wenn ja wie macht man es das sich die cmd nicht gleich wieder schließt, sondern man sich das ergebnis angucken kann? Start -> Ausführen -> "cmd" eintippen und aus dem Fenster die Batch starten.
28. Juli 201015 j Autor @echo off set Host=xxx.xxx.xxx REM set Host=xxx.xxx.xxx ping -n 1 %Host% > NUL set result=%errorlevel% if %errorlevel%=0 ( echo Host is da ) else %errorlevel%=1 ( echo Host ist nicht da ) Da kommt als Fehler =0 ist syntaktisch an dieser stelle nicht verarbeitbar. =/
28. Juli 201015 j Du hast den Sinn vom ELSE-Teil nicht verstanden. @echo off set Host=xxx.xxx.xxx ping -n 1 %Host% > NUL set result=%errorlevel% IF %errorlevel% == 0 ( echo Host is da ) else ( echo Host ist nicht da )
28. Juli 201015 j Autor achso. stimmt. der else teil fängt ja alles andere ab. da brauch ja garkeine bedingung hin. =D Vielen Dank Lupo
28. Juli 201015 j Autor war glaub ich quatsch was hier stand... Bearbeitet 28. Juli 201015 j von bingobaer
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.