update: 05. 07. 2016
Pozice: Linux / Vlastní Scripty / Mapa disku v RAIDu /

Zobrazí jaké fizické disky, které jsou v soft.raidu (mdadm) připojené.

Zobrazí stavy disků připojených v soft.raidu (mdadm). Funkce hddmdstat zobrazi jména fizyckých zařízení (id), a hddmdstatdisk zobrazí jáký disk v boxu má problém pro případnou výměnu. Je však nutné doplnit funkce hddmap a hddmapls


Příklady:
/ --- Zobrazí id připojených disků --- /
# hddmdstat
Personalities : [raid1] 
md6 : active raid1 (sdj2)ata-SAMSUNG_HD502HJ_S26EJ9FZ302491-part2[1](F) (sdi2)ata-SAMSUNG_HD502IJ_468611CQ328161-part2[0]
      278539264 blocks super 1.2 [2/1] [U_]
      bitmap: 0/3 pages [0KB], 65536KB chunk

md5 : active raid1 (sdj1)ata-SAMSUNG_HD502HJ_S26EJ9FZ302491-part1[1] (sdi1)ata-SAMSUNG_HD502IJ_468611CQ328161-part1[0]
      209584128 blocks super 1.2 [2/2] [UU]
      bitmap: 0/2 pages [0KB], 65536KB chunk

md0 : active raid1 (sdb1)ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M6CKJL0C-part1[3] (sda1)ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M1FSTEUU-part1[2]
      1953382400 blocks super 1.2 [2/2] [UU]
      bitmap: 5/15 pages [20KB], 65536KB chunk

unused devices: 

/ --- Zobrazí do konsole barevně --- / # hddmdstatdisk md6 HDD5(2) HDD3(2) md5 HDD5(1) HDD3(1) md0 HDD2(1) HDD1(1)
/ --- Zobrazí do konsole bez barev --- / # hddmdstatdisk nc +md6 -HDD5(2) +HDD3(2) +md5 +HDD5(1) +HDD3(1) +md0 +HDD2(1) +HDD1(1)
/ --- Aktualizuje seznam nových disku v raidu --- / # hddmdstatdisk update md6 HDD5(2) HDD3(2) md5 HDD5(1) HDD3(1) md0 HDD2(1) HDD1(1)

Rychlá Instalace: hddmap, hddmapls, hddmdstat, hddmdstatdisk

cd /usr/local/sbin &&\
wget http://www.mtom.cz/dl/Linux/Vlastn%C3%AD+Scripty/Mapa+disku+v+RAIDu/hddmdstat &&\
wget http://www.mtom.cz/dl/Linux/Vlastn%C3%AD+Scripty/Mapa+disku+v+RAIDu/hddmdstatdisk &&\
wget http://www.mtom.cz/dl/Linux/Vlastn%C3%AD+Scripty/Mapa+disku+v+RAIDu/hddmap &&\
wget http://www.mtom.cz/dl/Linux/Vlastn%C3%AD+Scripty/Mapa+disku+v+RAIDu/hddmapls &&\
chmod +x /usr/local/sbin/hddmdstat

/usr/local/sbin/hddmdstat

#!/bin/sh

cp /proc/mdstat /tmp/mdstat
for DISK in `ls /dev/disk/by-id/|grep "^scsi\|^ata"`; do
    NM=`echo -n "$DISK"`
    DV=`ls -l "/dev/disk/by-id/$DISK" | cut -f2 -d'>'| sed 's;\.\|\/\| ;;g'`
    cat /tmp/mdstat | sed 's; '$DV'\[; ('$DV')'$NM'\[;g' > /tmp/mdstatb
    cp /tmp/mdstatb /tmp/mdstat
done
cat /tmp/mdstat
rm /tmp/mdstatb
rm /tmp/mdstat

/usr/local/sbin/hddmdstatdisk

#!/bin/sh

HDDCACHE="/var/cache/hddmdstat"

# Create casch dir
if [ ! -d $HDDCACHE ]; then
    mkdir -p $HDDCACHE
fi

cat /proc/mdstat|grep md|sed 's;\[[0-9]\];);g'|cut -f '1,5-32' -d ' ' > $HDDCACHE/hddmdstat_act1.txt

hddmap|while read DISKS; do
    DBOX="`echo $DISKS|cut -f 1 -d ' '`"
    HDM="`echo $DISKS|cut -f 2 -d ' '|sed 's;/dev/;;g'`"
    cat $HDDCACHE/hddmdstat_act1.txt|sed "s;$HDM;$DBOX(;g" > /tmp/mdmap.txt
    cp /tmp/mdmap.txt $HDDCACHE/hddmdstat_act1.txt
done

if [ "$1" = "update" ]; then
    cp $HDDCACHE/hddmdstat_act1.txt $HDDCACHE/hddmdstat_set.txt
fi

if [ ! -e $HDDCACHE/hddmdstat_set.txt ]; then
    cp $HDDCACHE/hddmdstat_act1.txt $HDDCACHE/hddmdstat_set.txt
fi

cp $HDDCACHE/hddmdstat_act1.txt $HDDCACHE/hddmdstat_cmp.txt
cp $HDDCACHE/hddmdstat_set.txt $HDDCACHE/hddmdstat_act2.txt

if [ "$1" != "nc" ]; then
    cat $HDDCACHE/hddmdstat_set.txt|sed 's@\([^ ]\+\)@\\\\\\033[1m\\\\\\033[31;40m\1\\\\\\033[0m@g' > $HDDCACHE/hddmdstat_act1.txt
else
    cat $HDDCACHE/hddmdstat_set.txt|sed 's;\([^ ]\+\);-\1;g' > $HDDCACHE/hddmdstat_act1.txt
fi

for DIS in `cat $HDDCACHE/hddmdstat_cmp.txt`; do
    if [ "$1" != "nc" ]; then
	cat $HDDCACHE/hddmdstat_act1.txt|sed 's@31;40m'$DIS'@32;40m'$DIS'@g' > /tmp/mdmap.txt
    else
	cat $HDDCACHE/hddmdstat_act1.txt|sed 's@-'$DIS'@+'$DIS'@g' > /tmp/mdmap.txt
    fi
    cp /tmp/mdmap.txt $HDDCACHE/hddmdstat_act1.txt
done

rm /tmp/mdmap.txt

cat $HDDCACHE/hddmdstat_act1.txt|while read E; do
     /bin/echo -e "$E"
done

Soubory ke stažení

NazevtypDelkaVytvořeno
hddmdstatdiskhddmdstatdisk1 KB05. 07. 2016
hddmdstathddmdstat353 B24. 06. 2016
hddmaphddmap467 B03. 07. 2016
hddmaplshddmapls493 B11. 07. 2016