bingobaer Geschrieben 26. Juli 2010 Geschrieben 26. Juli 2010 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. Zitieren
lupo49 Geschrieben 26. Juli 2010 Geschrieben 26. Juli 2010 Dann musst du den Ping-Befehl aufrufen, den %errorlevel% auswerten und je nachdem, ob da 0 oder 1 drinsteht, einen Text ausgeben lassen. Zitieren
bingobaer Geschrieben 26. Juli 2010 Autor Geschrieben 26. Juli 2010 öhm....joar =D okay... würdest mir beim basteln des batch scripts helfen? Zitieren
lupo49 Geschrieben 26. Juli 2010 Geschrieben 26. Juli 2010 Ja, wenn von dir der Ansatz kommt. Ich schreibe dir hier kein fertiges Skript hin. Zitieren
bingobaer Geschrieben 27. Juli 2010 Autor Geschrieben 27. Juli 2010 set Host=xxx.xxx.xxx REM set Host=xxx.xxx.xxx ping -n 1 %Host% > NUL set result = %errorlevel% soweit bin ich bis jetzt. Zitieren
lupo49 Geschrieben 27. Juli 2010 Geschrieben 27. Juli 2010 Und jetzt die Variable "result" mittels IF-Anweisung auswerten und je nach dem, welchen Wert diese hat, deinen gewünschten Text ausgeben. Zitieren
bingobaer Geschrieben 27. Juli 2010 Autor Geschrieben 27. Juli 2010 @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? Zitieren
lupo49 Geschrieben 27. Juli 2010 Geschrieben 27. Juli 2010 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. Zitieren
bingobaer Geschrieben 28. Juli 2010 Autor Geschrieben 28. Juli 2010 @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. =/ Zitieren
lupo49 Geschrieben 28. Juli 2010 Geschrieben 28. Juli 2010 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 ) Zitieren
bingobaer Geschrieben 28. Juli 2010 Autor Geschrieben 28. Juli 2010 achso. stimmt. der else teil fängt ja alles andere ab. da brauch ja garkeine bedingung hin. =D Vielen Dank Lupo Zitieren
bingobaer Geschrieben 28. Juli 2010 Autor Geschrieben 28. Juli 2010 (bearbeitet) war glaub ich quatsch was hier stand... Bearbeitet 28. Juli 2010 von bingobaer Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.