74 lines
1.4 KiB
Bash
74 lines
1.4 KiB
Bash
#!/bin/bash
|
|
HOSTS="panda-1 panda-2 panda-3 panda-4"
|
|
HOSTS="10.99.0.41 10.99.0.42 10.99.0.43 10.99.0.44"
|
|
COM=con
|
|
|
|
RETSTR=""
|
|
RETVAL=0
|
|
|
|
for H in $HOSTS
|
|
do
|
|
ALARMTABLE=`snmpwalk -Oq -c$COM -v2c $H iso.3.6.1.4.1.3652.3.3.3.8.1 | tr " " "_"`
|
|
#echo $H
|
|
COUNT=0
|
|
for A in $ALARMTABLE
|
|
do
|
|
PRINT=1
|
|
PORT=`echo $A | grep -Pio "[^.]*_" | tr -d '_'`
|
|
VALUE=`echo $A | awk -F_ '{print $2}'`
|
|
|
|
case "$VALUE" in
|
|
0)
|
|
VALUE="not available"
|
|
;;
|
|
1)
|
|
VALUE="no alarm"
|
|
#PRINT=0
|
|
;;
|
|
2)
|
|
VALUE="RX low warning"
|
|
COUNT=`expr $COUNT + 1`
|
|
;;
|
|
3)
|
|
VALUE="RX low alarm"
|
|
COUNT=`expr $COUNT + 1`
|
|
;;
|
|
4)
|
|
VALUE="RX high alarm"
|
|
COUNT=`expr $COUNT + 1`
|
|
;;
|
|
255)
|
|
VALUE="unknown alarm"
|
|
COUNT=`expr $COUNT + 1`
|
|
;;
|
|
*)
|
|
VALUE="unknown value"
|
|
;;
|
|
esac
|
|
#if [ "$PRINT" == "1" ];
|
|
#then
|
|
#echo "PORT $PORT: $VALUE"
|
|
#fi
|
|
done
|
|
if [ "$COUNT" != "0" ];
|
|
then
|
|
#echo "$COUNT alarms on host $H"
|
|
RETSTR=`echo $RETSTR "$COUNT alarms on $H;"`
|
|
fi
|
|
|
|
#echo ""
|
|
done
|
|
|
|
if [ "$RETSTR" == "" ];
|
|
then
|
|
RETSTR="no alarms"
|
|
RETVAL=0
|
|
else
|
|
RETVAL=2
|
|
fi
|
|
|
|
echo "$RETSTR"
|
|
exit $RETVAL
|
|
|
|
|