diff --git a/operation/mkTmpfstab.sh b/operation/mkTmpfstab.sh index 54aa009..1af61af 100755 --- a/operation/mkTmpfstab.sh +++ b/operation/mkTmpfstab.sh @@ -90,42 +90,57 @@ cpTmpfstab(){ ########################################################################### mdfyTmpFstab(){ local i - local j - local LASTNAME='' - local UUIDFROMFSTAB=$(awk '/^[ \t]*[^#]/ { if ($1 ~ "^[UUID]") { print $1}}' $1) - for i in $UUIDFROMFSTAB - do - local NAMEFROMUUID=`blkid -t$i |cut -f 1 -d :` - if [ ! "${NAMEFROMUUID}" ];then - echo "error UUID, can not find devices by blkid" >>$LOGDIR$LOGFILE - exit 1 - fi + local j + local LASTNAME='' - if [ `echo $NAMEFROMUUID| wc -w` -lt 2 ];then - LASTNAME=$NAMEFROMUUID + #replace UUID in the temp fstab + local UUIDFROMFSTAB=$(awk '/^[ \t]*[^#]/ { if ($1 ~ "^[UUID]") { print $1}}' $1) + if [ -n "$UUIDFROMFSTAB" ];then + for i in $UUIDFROMFSTAB + do + local NAMEFROMUUID=`blkid -t$i |cut -f 1 -d :` + if [ ! "${NAMEFROMUUID}" ];then + echo "error UUID, can not find devices by blkid" >>$LOGDIR$LOGFILE + exit 1 + fi + + if [ `echo $NAMEFROMUUID| wc -w` -lt 2 ];then + LASTNAME=$NAMEFROMUUID + else + for j in $NAMEFROMUUID + do + if [ `echo $j|grep 'md'` ];then + if [ ! $LASTNAME ]; then + LASTNAME=$j else - for j in $NAMEFROMUUID - do - if [ `echo $j|grep 'md'` ];then - if [ ! $LASTNAME ]; then - LASTNAME=$j - else - echo "too many raid devices be found" >>$LOGDIR$LOGFILE - exit 1 - fi - else - if [ `mdadm -Ds -v|grep -w $j` ];then - continue - else - echo "too many partitions be found" >>$LOGDIR$LOGFILE - exit 1 - fi - fi - done + echo "too many raid devices be found" >>$LOGDIR$LOGFILE + exit 1 fi - sed -i s@$i@$LASTNAME@g $1 - LASTNAME='' + else + if [ `mdadm -Ds -v|grep -w $j` ];then + continue + else + echo "too many partitions be found" >>$LOGDIR$LOGFILE + exit 1 + fi + fi done + fi + sed -i s@$i@$LASTNAME@g $1 + LASTNAME='' + done + fi + + #replace by-id in the temp fstab + local BYIDFROMFSTAB=$(awk '/^[ \t]*[^#]/ { if ($1 ~ "by-id") { print $1}}' $1) + if [ -n "$BYIDFROMFSTAB" ];then + for i in $BYIDFROMFSTAB + do + local NAMEFROMBYID=`readlink $BYIDFROMFSTAB` + NAMEFROMBYID="/dev/`basename $NAMEFROMBYID`" + sed -i s@$i@$NAMEFROMBYID@g $1 + done + fi } ########################################################################### @@ -145,6 +160,13 @@ checkArgument(){ fi } +########################################################################### +# Function Name: () +# Input: $PATHFROM $PATHTO +# Return: nothing +# Description: check the arguments +########################################################################### + ########################################################################### # Function Name: usage() # Input: nothing