Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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.

Geschrieben

Dann musst du den Ping-Befehl aufrufen, den %errorlevel% auswerten und je nachdem, ob da 0 oder 1 drinsteht, einen Text ausgeben lassen.

Geschrieben

Und jetzt die Variable "result" mittels IF-Anweisung auswerten und je nach dem, welchen Wert diese hat, deinen gewünschten Text ausgeben.

Geschrieben

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

Geschrieben

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.

Geschrieben

@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. =/

Geschrieben

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

)

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...