[这个贴子最后由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
| daemonix 回复于:2002-11-26 22:31:54 |
| 瓦,高人 |
| sunmarmot 回复于:2002-11-26 23:10:41 |
| [这个贴子最后由sunmarmot在 2002/11/28 03:23pm 编辑] 又发现一个老大!!!! 根据老大的指点,偶把偶晚上问的关于如何使用这个.sh帖出来 您现在的系统盘是c1t0d0,想在c1t1d0上做备份 则运行: CopyBootDisk.sh c1t1d0 万一您的系统盘坏了,就能够把这个盘插到c1t0d0的位置,系统就能够用了 hohohohoh~~~~~~~~~又多了把刷子 |
| liuqinghe 回复于:2002-11-27 16:34:12 |
| 真牛b |
| YT 回复于:2002-11-27 21:08:47 |
| 好,支持! |
| sunmarmot 回复于:2002-11-28 16:53:57 |
| 实验ing,期待ing。。。。。。。。。。 |
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




