PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Variable ignorieren?



Friesco
11-09-2009, 14:53
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

peschmae
13-09-2009, 16:57
Am einfachsten machst du ein


if [ $VERGLEICH2 = 1 ]; then
echo "Critical"
elif [ $VERGLEICH1 = 1]; then
echo "Warning"
else
echo "alles klar"
fi


Ich finde du solltest auch den Vergleich nicht in Variablen zwischenspeichern, wird etwas unübersichtlich, besser gleich


if [ `echo "scale=2; $SPANNUNG > 55" | bc` = 1 ]; then


MfG Peschmä

Friesco
14-09-2009, 08:51
Aha ok ....
Danke ich werde das so mal versuchen.