Мониторинг жёстких дисков в Solaris без SMART’a

Нашёл в рассылке неплохой скрипт для проверки жёстких дисков на ошибки. Недостатки скрипта в том, что он даёт поверхностную информацию. Более полную можно вытащить из вывода команды

$ 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

Мониторинг жёстких дисков в Solaris без SMART’a: 2 комментария

  1. Alexander Golikov

    в строке
    LIST=$(zpool status | grep «c[1-9].*d0 » | awk ‘{print $1}’)
    надо испаравить 1 на 0
    grep «c[0-9].*d0 «

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *