#!/bin/bash


#Check status of each array.
GOOD_ARRAYS=0;
BAD_ARRAYS=0;
GOOD_DISKS=0;
BAD_DISKS=0;
MISSING=0;
DATA=$(cat /proc/mdstat |grep -A1 "^md"|sed -e s/'^md'/'|md'/g|tr "\n" " "|tr "|" "\n"|sed -e s/' --'//g|sed -e s/'$'/"\n"/g);

IFS=$'\n'
for line in $DATA; do

        if [ -n "$line" ]; then

        #Check Array and disks.
           DET=$(echo $line|awk '{print $1" "$(NF-1)" "$NF}');
           GOOD=$(echo $DET|awk '{print $NF}'|awk -F 'U' '{print NF-1}');
           BAD=$(echo $DET|awk '{print $NF}'|awk -F '_' '{print NF-1}');
           GOOD_DISKS=$(($GOOD_DISKS + $GOOD));
           BAD_DISKS=$(($BAD_DISKS + $BAD));

           EQ=$(echo $DET|awk '{print $(NF-1)}'|sed -e s/'\/'/'%'/g|sed -e s/'\[\|\]'//g);
           MMISSING=$((EQ))
           MISSING=$(($MISSING + $MMISSING));
           if [ $MMISSING -gt 0 ] || [ $BAD -gt 0 ]; then
                BAD_ARRAYS=$(($BAD_ARRAYS + 1));
           else
                GOOD_ARRAYS=$(($GOOD_ARRAYS + 1));
           fi
        fi;
done

echo $GOOD_ARRAYS;
echo $BAD_ARRAYS;
echo $GOOD_DISKS;
echo $BAD_DISKS;
echo $MISSING;
