Build precise queries to find exactly what you need
Press ESC to close
Nagios World Conference 2026: Sept. 14-17 in St. Paul, MN | Learn More
Hi, here’s my version that works on my config, i changed some deprecated commands:
#!/bin/bash # # Created by Sebastian Grewe, Jammicron Technology #
# Get count of raid arrays RAID_DEVICES=$(grep ^md -c /proc/mdstat)
# Get count of degraded arrays #RAID_STATUS=`grep “[.*_.*]” /proc/mdstat -c` RAID_STATUS=$(grep -E “[.*(=|>|.).*]” /proc/mdstat -c)
# Is an array currently recovering, get percentage of recovery RAID_RECOVER=$(grep recovery /proc/mdstat | awk ‘{print $4}’) RAID_RESYNC=$(grep resync /proc/mdstat | awk ‘{print $4}’) RAID_CHECK=$(grep check /proc/mdstat | awk ‘{print $4}’)
# Check raid status # RAID recovers –> Warning if [ -n “${RAID_RECOVER}” ]; then #if [[ $RAID_RECOVER ]]; then STATUS=”WARNING – Checked $RAID_DEVICES arrays, recovering : $RAID_RECOVER” EXIT=1 elif [ -n “${RAID_RESYNC}” ]; then STATUS=”WARNING – Checked $RAID_DEVICES arrays, resync : $RAID_RESYNC” EXIT=1 elif [ -n “${RAID_CHECK}” ]; then STATUS=”OK – Checked $RAID_DEVICES arrays, check : $RAID_CHECK” EXIT=0 # RAID ok elif [ -n “${RAID_STATUS}” = “0” ]; then STATUS=”OK – Checked $RAID_DEVICES arrays.” EXIT=0 # All else critical, better save than sorry else EXTEND_RAID_STATUS=$(grep -E “[.*(=|>|.|_).*]” /proc/mdstat | awk ‘{print $2}’ | uniq -c | xargs echo) STATUS=”WARNING- Checked $RAID_DEVICES arrays, $RAID_STATUS have failed check: $EXTEND_RAID_STATUS ” EXIT=1 fi
# Status and quit echo “$STATUS” exit $EXIT