Нашёл в рассылке неплохой скрипт для проверки жёстких дисков на ошибки. Недостатки скрипта в том, что он даёт поверхностную информацию. Более полную можно вытащить из вывода команды
$ kstat -pm sderr
Скрипт ниже.
#!/bin/bash # check disk in all pools for errors. # partially failing (or slow) disks # may result in horribly degradded # performance of zpools despite the fact # the pool is still healthy # exit codes # 0 OK # 1 WARNING # 2 CRITICAL # 3 UNKONOWN OUTPUT="" WARNING="0" CRITICAL="0" SOFTLIMIT="5" HARDLIMIT="20" LIST=$(zpool status | grep "c[0-9].*d0 " | awk '{print $1}') for DISK in $LIST do ERROR=$(iostat -enr $DISK | cut -d "," -f 4 | grep "^[0-9]") if [[ $ERROR -gt $SOFTLIMIT ]] then OUTPUT="$OUTPUT, $DISK:$ERROR" WARNING="1" fi if [[ $ERROR -gt $HARDLIMIT ]] then OUTPUT="$OUTPUT, $DISK:$ERROR" CRITICAL="1" fi done if [[ $CRITICAL -gt 0 ]] then echo "CRITICAL: Disks with error count >= $HARDLIMIT found: $OUTPUT" exit 2 fi if [[ $WARNING -gt 0 ]] then echo "WARNING: Disks with error count >= $SOFTLIMIT found: $OUTPUT" exit 1 fi echo "OK: No significant disk errors found" exit 0
2 коментарі “Мониторинг жёстких дисков в Solaris без SMART’a”
в строке
LIST=$(zpool status | grep “c[1-9].*d0 ” | awk ‘{print $1}’)
надо испаравить 1 на 0
grep “c[0-9].*d0 “
Спасибо, исправил.