#!/bin/bash export ARCCONF_PATH=/usr/RemoteArcconf/ DATE=$(date +"%F (%H:%M:%Sh)") RAID=/var/tmp/aac_check_$(date +"%F_%H-%M-%Sh").txt RAIDSTATUSFILE=/var/tmp/aac_status.txt ARCCONF=/usr/RemoteArcconf/arcconf RECIPIENT="herwarth@helux.nl herwarth@heitmann.nl" $ARCCONF getconfig 1 al > $RAID CTRLSTAT=$(grep 'Controller Status' $RAID| cut -d\: -f2 | cut -d' ' -f2) ## Optimal echo "Adaptec Status $DATE :" >$RAIDSTATUSFILE echo "----------------------------------------" >>$RAIDSTATUSFILE echo "Controller status : $CTRLSTAT" >>$RAIDSTATUSFILE CTRLBATINFO=$(grep -A 2 'Controller Battery' $RAID|grep 'Status'| cut -d\: -f2) CTRTEMP=$(grep 'Temperature' $RAID| awk '{print $7}' | sed -e 's/^.*(\(.*\)),*/\1/') CTRTEMPERATURE=$(grep 'Temperature' $RAID) >>$RAIDSTATUSFILE ## Normal echo "Battery status: $CTRLBATINFO" >>$RAIDSTATUSFILE echo $CTRTEMPERATURE >>$RAIDSTATUSFILE LOGICSTAT=$(grep 'Status of logical device' $RAID| cut -d\: -f2 | cut -d' ' -f2) ## Optimal echo "Status of logical device : $LOGICSTAT" >>$RAIDSTATUSFILE LOGICSTR=$(grep 'Failed stripes' $RAID| cut -d\: -f2 | cut -d' ' -f2) ## No echo "Failed stripes : $LOGICSTR" >>$RAIDSTATUSFILE # number of drives DRIVESNO=$(grep -B 1 -A 1 'Device is a Hard' $RAID | grep -c 'Device #') echo "Devices found : $DRIVESNO" >>$RAIDSTATUSFILE if [ "$CTRLSTAT" = "Optimal" ] ; then # when everything is OK send the status message on Wednesday and Saturday (Wed / Sat) on 02.00 hrs, which is set to run in CRON every hour (15 * * * * /usr/local/bin/arctest_status.sh >/dev/null ) # if you don't want to get emails if nothing wrong then don't use this block if ... fi # this should be all in 1 line if ( [ "$(date +"%H")" = "02" ] && [ "$(date +"%a")" = "Wed" ] ) || ( [ "$(date +"%H")" = "02" ] && [ "$(date +"%a")" = "Sat" ] ) ; then i="0" while [ $i -lt "$DRIVESNO" ] ; do CURDRIVE=DRIVE$i # this should be all in 1 line echo "$CURDRIVE : $(grep -A 2 "Device #$i" $RAID | grep 'State' | cut -d\: -f2 | cut -d' ' -f2)" >>$RAIDSTATUSFILE i=$[$i+1] done # this should be all in 1 line mail -s "Adaptec RAID status $DATE " $RECIPIENT < $RAIDSTATUSFILE fi $(rm $RAID) elif [ "$CTRLSTAT" != "Optimal" ] ; then ## SENDTHEMAIL cat $RAID >>$RAIDSTATUSFILE # this should be all in 1 line mail -s "RAID FAILURE - Adaptec RAID error $DATE !" $RECIPIENT < $RAIDSTATUSFILE else cat $RAID >>$RAIDSTATUSFILE # this should be all in 1 line mail -s "RAID FAILURE - Adaptec RAID error $DATE !" $RECIPIENT < $RAIDSTATUSFILE fi