Переписал скрипт для мониторинга Adaptec RAID контролера в Linux, чтобы в случае проблем отсылал сообщение о проблеме на E-mail.
Скрипт мониторинга RAID контролера Adaptec с аргументом mail запускается в кроне каждую минуту и проверяет на наличии ошибок, в случае если ошибка больше 0 отправляется на почту.
Если скрипт запустить с аргументом log, то увидим статус Adaptec RAID контроллера (/var/script/raid/adaptec log).
0-59/5 * * * * /var/script/raid/adaptec mail
#!/bin/bash [email protected] ERROR_COUNT=0 LOG="/tmp/aacraid.log" arcconf GETCONFIG 1 > $LOG if [ "$?" -ne "0" ] then ERROR_STR="Cannot write to log" let "ERROR_COUNT += 1" fi CONTROLLER=`cat $LOG | grep -E 'Controller Status' | awk '{ print $4 }'` #BATTERY=`cat $LOG | grep -A 2 'Controller Battery Information' | grep Status | awk '{print $3}'` LOGICAL_DEVICE=`cat $LOG | grep -E 'Status of logical device' | awk '{print $6}'` PHISICAL_DEVICE=`cat $LOG | grep -A 2 -E 'Device #[0-9]' | grep State | awk '{print $3}'` get_status() { while read line ; do if [ -n "$line" ] then if [ "$line" = "Optimal" ] || [ "$line" = "Online" ] || [ "$line" = "Global" ] then echo "Test result is OK" > /dev/null else #echo "Test result is FAIL" ERROR_STR="Some poblem with ACC-raid. Please check $LOG file" let "ERROR_COUNT += 1" fi fi done <<< "$1" } get_status "${CONTROLLER}" #get_status "${BATTERY}" get_status "${LOGICAL_DEVICE}" get_status "${PHISICAL_DEVICE}" if [ -n "$1" ] then if [ "$1" = "log" ] then echo ${ERROR_STR} echo "Controller Status is ${CONTROLLER}" # echo "Controller Battery Status is ${BATTERY}" echo "Status of LDs are ${LOGICAL_DEVICE}" echo "Status of PDs are:" && cat $LOG | grep -A 2 -E 'Device #[0-9]' fi if [ "$1" = "mail" ] then if [ "${ERROR_COUNT}" -gt 0 ] then echo "${ERROR_STR} \r Controller Status is ${CONTROLLER}" | mail -s "Adaptec fail" $email fi fi else echo ${ERROR_COUNT} fi
Добрый день.
Скрипт постоянно присылает на почту такое сообщение: Cannot write to log \r Controller Status is. Причём запускается его выполнение от root, доступ к файлу полый. Признаться не понимаю в чём проблема.