Commit 5d248d50 authored by Vitaly Lipatov's avatar Vitaly Lipatov

add scripts for mdadm recover

parent e9f620b1
#!/bin/sh
HDDLIST=''
for i in /dev/sd? ; do
hdparm -i $i | grep "Model=" | grep "WDC" && HDDLIST="$HDDLIST|$(basename $i)"
done
# TODO: csed?
cat /proc/mdstat | egrep --color "(NONONO$HDDLIST)"
\ No newline at end of file
get_array_uuid()
{
local dev="$1"
mdadm -E $dev | grep "Array UUID : " | sed -e "s|.*Array UUID : ||"
}
get_md_by_uuid()
{
#ARRAY /dev/md/1 metadata=1.2 UUID=1912da86:6089954c:2aead1ca:77f06477 name=azbykar.localdomain:1
grep "UUID=$1" /etc/mdadm.conf | cut -d" " -f 2
}
get_dm_status()
{
[ -r "$1" ] || return
mdadm -D $1 | grep "State : " | sed -e "s|.*State : ||"
}
dmsetup remove_all
for dev in /dev/sd* ; do
ARRAYUUID=$(get_array_uuid $dev)
[ -n "$ARRAYUUID" ] && MDDEV=$(get_md_by_uuid $ARRAYUUID) || MDDEV=''
STATUS="$(get_dm_status $MDDEV)"
echo "$dev - $ARRAYUUID - $MDDEV, status: $STATUS"
[ -n "$MDDEV" ] || continue
# TODO: check only missed in array
if echo "$STATUS" | grep -q "degraded" ; then
echo "$STATUS" | grep -q "recovering" && echo "Skip $MDDEV, already recovering ..." && continue
echo "Restore degrated $MDDEV ...."
# TODO: --readwrite for SSD
mdadm $MDDEV --re-add $dev
fi
done
# TODO: how to check?
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment