ich verstehe es nicht, aber vielleicht kann mir jemand dabei helfen. Es geht um folgendes: Ich frage via SSH eine HPE 3Par ab um mir ein paar Werte geben zu lassen. Unter anderem auch die Batterieladestände. Wenn ich die Abfrage starte sind in der Abfragedatei auch die richtigen Werte:
Code: Select all
Power Supply ID,0
Assembly Serial Number,XXXXXXXXXXXXXX
Charge Level(%),100
Power Supply ID,1
Assembly Serial Number,YYYYYYYYYYYYYYY
Charge Level(%),100
Code: Select all
./check_3par: line 170: 100 + : syntax error: operand expected (error token is "+ ")
Code: Select all
# check batteries load level
if [ $COMMAND == "check_bat" ]; then
$CONNECTCMD showbattery -d -csvtable | grep "Supply ID\|Serial\|Charge Level" > $TMPDIR/3par_$COMMAND.$INSERV.out
if [ `cat $TMPDIR/3par_$COMMAND.$INSERV.out | wc -l` -lt 3 ]; then
echo "No Battery"
rm -f $TMPDIR/3par_$COMMAND.$INSERV.out
else
CHARGELVL=`cat ${TMPDIR}/3par_${COMMAND}.${INSERV}.out | grep Charge | cut -d, -f2`
IFS=' ' read -r -a CHARGE_LVL <<< $CHARGELVL
BATCOUNT=`cat ${TMPDIR}/3par_${COMMAND}.${INSERV}.out | grep ID | cut -d, -f2`
BATS=`wc -w <<< \"${BATCOUNT}\"`
for a in $BATCOUNT; do
CHARGE_SUM=$((${CHARGE_SUM} + ${CHARGE_LVL[${a}]}));
done
CHARGE_SUM=$((${CHARGE_SUM}/`wc -w <<< \"${BATCOUNT}\"`))
if [ $CHARGE_SUM -eq 100 ]; then
status=0
statustxt=OK
elif [ $CHARGE_SUM -lt 95 ]; then
status=2
statustxt=CRITICAL
elif [ $CHARGE_SUM -le 99 ]; then
status=1
statustxt=WARNING
fi
fi
echo "$status ${INSERV}_Info_Bat Battery=$CHARGE_SUM;99;95;100;0 $statustxt - $BATS Batteries loaded to: $CHARGE_SUM %"
#rm $TMPDIR/3par_$COMMAND.$INSERV.out
fi
Danke schon mal im Voraus.
MfG. Stefan



