if [ `uname` = "Darwin" ]; then
tmp=`mktemp "/tmp/$$.XXXX"`
- LC_ALL=C diskutil checkRAID >"$tmp"
+ LC_ALL=C diskutil checkRAID >"$tmp" 2>/dev/null
if [ $? -eq 0 ]; then
# Apple Software-RAID detected
statusString1=`grep "^Status:" "$tmp" | uniq`
TEXT="OK - RAID status is good."
fi
fi
- LC_ALL=C raidutil list status | grep "RAID " >"$tmp"
+ LC_ALL=C raidutil list status 2>/dev/null | grep "RAID " >"$tmp"
if [ $? -eq 0 ]; then
# Apple Hardware-RAID detected
declare -i good=0
status=""
while read x; do
v=`echo "$x" | cut -d' ' -f1`
- s=`echo "$x" | cut -b78-`
+ s=`echo "$x" | cut -b67- | sed -e 's/://g'`
+ s2=`echo "$x" | cut -b78-`
[ -n "$status" ] \
- && status="$status $v:$s" \
+ && status="$status, $v:$s" \
|| status="$v:$s"
- [ "$s" = "Good" ] && good=$good+1 || bad=bad+1
+ [ "$s2" = "Good" ] && good=$good+1 || bad=bad+1
done <"$tmp"
if [ $bad -eq 0 -a $good -ge 1 ]; then
STATUS=0
fi
rm -f "$tmp"
elif [ `uname` = "Linux" -a -r /proc/mdstat ]; then
- status=$(cat /proc/mdstat | grep -E "(^md|^ [0-9])" | while read info1; do
+ status=$(cat /proc/mdstat | grep -E "(^md|^ [0-9])" \
+ | while read info1; do
read info2
dev=`echo $info1 | cut -d' ' -f1`
stat=`echo $info2 | cut -d'[' -f 3 | cut -d']' -f1`
echo -n " $dev:$stat"
done)
- if [ "`echo $status | tr -d 'md0123456789: U'`" = "" ]; then
- STATUS=0
- TEXT="OK - RAID is good: $status"
- else
- STATUS=2
- TEXT="ERROR - RAID status: $status"
+ if [ -n "$status" ]; then
+ if [ "`echo $status | tr -d 'md0123456789: U'`" = "" ]; then
+ STATUS=0
+ TEXT="OK - RAID is good: $status"
+ else
+ STATUS=2
+ TEXT="ERROR - RAID status: $status"
+ fi
fi
fi