119 lines
3.3 KiB
Bash
Executable File
119 lines
3.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
echo '<<<hdarray>>>'
|
|
############### Dell perc 6/i #############
|
|
if [ -a /opt/dell/srvadmin/bin/omreport ]
|
|
then
|
|
CONTROLLER=`/opt/dell/srvadmin/bin/omreport storage controller`
|
|
# Get Controller Info
|
|
CINFO=$(echo "$CONTROLLER" | grep Status)
|
|
CINFOSTAT=$(echo "$CINFO" | cut -d':' -f2)
|
|
CINFOSTAT=${CINFOSTAT:1}
|
|
echo Controller Status=$CINFOSTAT
|
|
|
|
IFS='
|
|
'
|
|
set -f
|
|
#Drive status
|
|
DRIVES=`/opt/dell/srvadmin/bin/omreport storage pdisk controller=0 -fmt ssv | sed -n '/[0-1].*/p'`
|
|
for line in $DRIVES
|
|
do
|
|
DRIVEINFO=$(echo "$line" | cut -d';' -f1)
|
|
DRIVESTATUS=$(echo "$line" | cut -d';' -f2)
|
|
echo Drive $DRIVEINFO=$DRIVESTATUS
|
|
done
|
|
set +f
|
|
unset IFS
|
|
#echo $DRIVES
|
|
fi
|
|
|
|
################## Dell LSI Controllers ##############
|
|
if [ -a /opt/MegaRAID/MegaCli/MegaCli64 ]
|
|
then
|
|
RAID=/tmp/lsi.$$
|
|
|
|
#TODO figure out how to get controller status
|
|
CTRLSTAT=Ok
|
|
echo Controller Status=$CTRLSTAT
|
|
|
|
#WARNING need to disable the stderr redirection to null in check_mk script
|
|
|
|
/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -aAll -NoLog > $RAID 2>&1
|
|
|
|
CTRLBATINFO="$(grep "Battery State" $RAID | cut -d\: -f2)"
|
|
CTRLBATINFO=$(echo $CTRLBATINFO)
|
|
[ "$CTRLBATINFO" = "Operational" ] && CTRLBATINFO=Ok
|
|
#echo Battery Status=$CTRLBATINFO
|
|
|
|
/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aALL -NoLog > $RAID
|
|
|
|
let iLOGICALDEV=0
|
|
grep "Virtual Drive:" $RAID | while read DEVICE; do
|
|
STATUS="$(grep -A 5 "$DEVICE" $RAID | tail -1 | cut -d\: -f2)"
|
|
STATUS=${STATUS:1}
|
|
[ "$STATUS" = "Optimal" ] && STATUS=Ok
|
|
echo Logical Drive $iLOGICALDEV=$STATUS
|
|
let iLOGICALDEV++
|
|
done
|
|
|
|
|
|
/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL -NoLog > $RAID
|
|
|
|
let iDEVICE=0
|
|
grep "Device Id" $RAID | while read DEVICE; do
|
|
STATUS="$(grep -A 12 "$DEVICE" $RAID | tail -1 | cut -d\: -f2)"
|
|
STATUS=${STATUS:1}
|
|
[ "$STATUS" = "Online, Spun Up" ] && STATUS=Ok
|
|
echo Drive $iDEVICE=$STATUS
|
|
let iDEVICE++
|
|
done
|
|
rm -f $RAID
|
|
fi
|
|
|
|
#################### Adaptec controllers ####################
|
|
if [ -a /usr/StorMan/arcconf ]
|
|
then
|
|
|
|
RAID=/tmp/adpatec.$$
|
|
/usr/StorMan/arcconf getconfig 1 al > $RAID
|
|
|
|
CTRLSTAT="$(grep "Controller Status" $RAID | cut -d\: -f2)"
|
|
CTRLSTAT=$(echo $CTRLSTAT)
|
|
[ "$CTRLSTAT" = "Optimal" ] && CTRLSTAT=Ok
|
|
echo Controller Status=$CTRLSTAT
|
|
|
|
CTRLBATINFO="$(grep -A 2 "Controller Battery" $RAID|grep "Status"|cut -d\: -f2)"
|
|
CTRLBATINFO=$(echo $CTRLBATINFO)
|
|
[[ "$CTRLBATINFO" = "Optimal" || "$CTRLBATINFO" = "Charging" ]]; CTRLBATINFO=Ok
|
|
echo Battery Status=$CTRLBATINFO
|
|
|
|
CTRTEMP="$(grep "Temperature" $RAID| cut -d\: -f2|awk '{print $5}')"
|
|
CTRTEMP=$(echo $CTRTEMP)
|
|
[ "$CTRTEMP" = "(Normal)" ] && CTRTEMP=Ok
|
|
echo Controller Temp=$CTRTEMP
|
|
|
|
let iLOGICALDEV=0
|
|
grep "Status of logical device" $RAID | cut -d\: -f2 | while read STATUS; do
|
|
[ "$STATUS" = "Optimal" ] && STATUS=Ok
|
|
echo Logical Drive $iLOGICALDEV=$STATUS
|
|
let iLOGICALDEV++
|
|
done
|
|
|
|
let iLOGICALDEV=0
|
|
grep "Failed stripes" $RAID| cut -d\: -f2 | while read STATUS; do
|
|
[ "$STATUS" = "No" ] && STATUS=Ok
|
|
echo Logical Drive Stripe $iLOGICALDEV=$STATUS
|
|
let iLOGICALDEV++
|
|
done
|
|
|
|
let iDEVICE=0
|
|
grep "Device #" $RAID | while read DEVICE; do
|
|
STATUS="$(grep -A 2 "$DEVICE" $RAID | tail -1 | cut -d\: -f2)"
|
|
STATUS=${STATUS:1}
|
|
[ "$STATUS" = "Online" ] && STATUS=Ok
|
|
echo Drive $iDEVICE=$STATUS
|
|
let iDEVICE++
|
|
done
|
|
rm -f $RAID
|
|
fi
|