friesco
Goto Top

Script Variable ignoriern möglich

Hallo Commiunity,

Ich hab da mal ne Frage.
Also schonmal vorweg. Ich kenn mich nicht gerade mit Scripten aus.

Folgendes Szenario.

Ich mache eine snmp Abfrage die aber keine Kommastellen berücksichtigt.
Also rechne ich das ganze um (dividiert durch 10)
Nun dürfen bestimmte Schwellwerte nicht überschritten werden.
(z.B. der abgefragte WERT ist 55. Dann echo "alles Klar".
Sollte der WERT aber 55 überschreiten, dann echo "Warnung".
Sollte der WERT sogar 70 überschreiten, dann echo "Critical".

Soweit sogut. Ich hoffe die Ausgangslage war verständlich.

Mein Script sieht schonmal so aus.

#!/bin/bash

WERT=`/usr/lib/nagios/plugins/check_snmp -H xxx -o xxx | awk '{print}'`
SPANNUNG=`echo "scale=2; $WERT / 10" | bc`
VERGLEICH1=`echo "scale=2; $SPANNUNG > 55" | bc`
VERGLEICH2=`echo "scale=2; $SPANNUNG > 70" | bc`
if [ $VERGLEICH2 = 1 ]
then echo "Critical"
if [ $VERGLEICH1 = 1 ]
then echo "Warning"
fi
else echo "alles Klar"
fi

nun ist es eben so....wenn der WERT 70 überschritten wird dann bekomm ich 2 ausgaben. aber die Warning soll ja dann wegfallen.
Wie kann ich denn die meldung unterdrücken??

need help!!!

Schonmal vielen Dank im voraus.....

Gruß
Friesco

Content-Key: 124751

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

Ausgedruckt am: 28.03.2024 um 15:03 Uhr

Mitglied: Woolfsmann
Woolfsmann 11.09.2009 um 16:35:30 Uhr
Goto Top
Hi,

ich würd das mit nem elsif lösen.

#!/bin/bash

WERT=`/usr/lib/nagios/plugins/check_snmp -H xxx -o xxx | awk '{print}'`  
SPANNUNG=`echo "scale=2; $WERT / 10" | bc`  
VERGLEICH1=`echo "scale=2; $SPANNUNG > 55" | bc`  
VERGLEICH2=`echo "scale=2; $SPANNUNG > 70" | bc`  
if [ $VERGLEICH2 = 1 ]
   then echo "Critical"  
 elif [ $VERGLEICH1 = 1 ]
   then echo "Warning"  
 else 
   echo "alles Klar"  
fi

Ist nicht getestet, müste aber gehen ;)

gruß
Woolfsmann
Mitglied: Friesco
Friesco 11.09.2009 um 16:51:41 Uhr
Goto Top
Vielen dank

ja es funktioniert.