On Wed, Jun 20, 2012 at 07:21:49PM -0400, Wakko Warner wrote: > After reading some of the stories about lost metadata, I was wondering if > anyone had a script that would output the member info for each device with > the device's physical serial number. > > For a crude one I did this while in /sys/block: > for x in sd*;do > echo /dev/$x > /lib/udev/scsi_id --export --page=0x80 --whitelisted /dev/$x > mdadm -E /dev/$x > done > > And saved the output. It works for me because all but 3 of my raid members > are full disks. > I made a script for myself, that collects the information by inspecting /sys instead of doing mdadm -E. The script see all mdraid devices and all devices that belong to a mdraid. I would like to know if the script works or not. It works for me. #!/bin/bash # $1 - procfile # $2 - File to log function cat-file () { echo $1 >> $2 if [ -e $1 ] ; then ${CAT} $1 >> $2 else echo "$1 don't exist" >> $2 fi echo >> $2 } FILEMD=md-list echo "Get slot positions of the devices in mdraid" >> ${FILEMD} for file in /sys/block/md* ; do echo $file >> ${FILEMD} for dev in $file/md/rd* ; do echo $dev >> ${FILEMD} ls -alF $dev >> ${FILEMD} done echo >> ${FILEMD} done echo "Get more info about devices in mdraid" >> ${FILEMD} # get info about all devices that are in a mdraid. # similar to mdadm --examine ? for file in /sys/block/md* ; do echo $file >> ${FILEMD} for dev in $file/md/rd* ; do echo $dev >> ${FILEMD} ls -alF $dev >> ${FILEMD} for fi in $dev/* ; do if test `basename $fi` = "block"; then ls -alF $fi >> ${FILEMD} else cat-file $fi ${FILEMD} fi done echo >> ${FILEMD} done echo >> ${FILEMD} done -- -- Jose Calhariz A coisa mais difícil de entender no mundo é o imposto de renda --Albert Einstein
Attachment:
signature.asc
Description: Digital signature