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

Printed on: April 25, 2024 at 20:04 o'clock

Member: Woolfsmann
Woolfsmann Sep 11, 2009 at 14:35:30 (UTC)
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
Member: Friesco
Friesco Sep 11, 2009 at 14:51:41 (UTC)
Goto Top
Vielen dank

ja es funktioniert.