[这个贴子最后由jxbcpp在 2002/11/26 10:30pm 编辑]
这个脚本用于把当前系统盘复制到指定的某个硬盘(两个硬盘需一样大小,否则自习修改脚本吧)#!/bin/sh
#programed by jxbcpp,QQ:589210
if test $# -lt 1
then
echo "\tUsage:$0 DestDisk"
echo "\tExample: If you want to make a mirror disk c0t1d0 of boot disk"
echo " You can use: $0 c0t1d0"
exit
fi
SourDisk=`df -k /|tail -1|awk -F'/' '{print $4}'|awk -F's' '{print $1}'`
DestDisk=$1
answer=`/usr/bin/ckyorn -d n -p "Do you want to mirror disk $SourDisk to $DestDisk?[Y/N]"`
if [ ! $answer = Y -a ! $answer = y ]
then
exit
fi
if [ $SourDisk = $DestDisk ]
then
echo "\t***********************************************"
echo "\t\tDestDisk cann't be system disk!"
echo "\t***********************************************"
exit
fi
echo "\nCopy partition table..."
prtvtoc /dev/rdsk/${SourDisk}s2 |fmthard -s - /dev/rdsk/${DestDisk}s2
if test $? -ne 0
then
echo "\t***********************************************"
echo "\t\tTwo Disks must be the same size!"
echo "\t***********************************************"
exit
fi
echo "\t***********************************************"
echo "\t\tCopy partition table Sucessfully!"
echo "\t***********************************************"
SWAP=`grep swap /etc/vfstab|grep dev|awk '{print $1}'`
prtvtoc /dev/rdsk/${SourDisk}s2|grep -v "^*" |awk '{print $1}' >/tmp/.asdfg
success=0
while read DD
do
if [ $DD -eq 2 ]
then
continue
fi
if [ /dev/dsk/${SourDisk}s${DD} = $SWAP ]
then
continue
fi
echo "\n\nDump /dev/dsk/${SourDisk}s${DD}"
mkdir /tmp/$DD
echo y|newfs /dev/rdsk/${DestDisk}s${DD}
if [ $? -ne 0 ]
then
echo "\t***********************************************"
echo "\t\tNewfs error!"
echo "\t***********************************************"
success=1
exit
fi
mount /dev/dsk/${DestDisk}s${DD} /tmp/$DD
ufsdump 0f - /dev/dsk/${SourDisk}s${DD}|(cd /tmp/$DD; ufsrestore -rf - )
rm /tmp/$DD/restoresymtable
if [ $DD -eq 0 ]
then
touch /tmp/0/reconfigure
fi
umount /tmp/${DD}
rmdir /tmp/${DD}
echo "\t***********************************************"
echo "\t\tDump /dev/dsk/${SourDisk}s${DD} Successfully!"
echo "\t***********************************************"
done < /tmp/.asdfg
if [ $success -eq 0 ]
then
installboot /usr/platform/`uname -i`/lib/fs/ufs/bootblk /dev/rdsk/${DestDisk}s0
echo "\t***********************************************"
echo "\t\tMirror Sucessfully!"
echo "\t***********************************************"
fi