中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 未整理篇
自己写的一个在新硬盘上自动恢复系统备份的脚本
作者:zysno1 时间:2003-02-17 11:10 出处:互联网 责编:chinaitpower
              摘要:自己写的一个在新硬盘上自动恢复系统备份的脚本

说明:
之前开发了一个基于Freebsd的准嵌入式系统。基本系统放在DOM上,用户数据放在硬盘上。因为系统比较复杂,每次恢复/安装系统都很繁琐。就自己写了一个脚本。实现了自动安装。
其中包括自动对硬盘进行分区,自动格式化等功能。有兴趣的朋友可以看看:)
欢迎指点!:)

#!/bin/sh

#Root Directory
BASE_DIR=/root/autobuild/backup-pack
Backup_Dir="$BASE_DIR"/NetEngine/System-Backup

#Partition directory
USR_DIR=/mnt/usr
VAR_DIR=/mnt/var
TMP_DIR=/mnt/tmp
HOME_DIR=/mnt/home

#Device
DISKLABEL=/sbin/disklabel
DEVICEDIR=dev
HARDDISK=ad1
DOM=ad2
LABEL=s1
PARTITIONFILE=/tmp/partition
USRNUM=d
VARNUM=e
TMPNUM=f
HOMENUM=g
DOM_DEVICE=/"$DEVICEDIR"/"$DOM"

# Auto Fdisk
#Get harddisk memory
disksize=`$DISKLABEL /"$DEVICEDIR"/"$HARDDISK" | grep "sectors/unit" | awk '{print $2}'`

disksize=`expr $disksize - 409600`
 
#Get usr spec
usrsize=`expr $disksize / 10 \* 5`

#Get var memory
varsize=`expr $disksize / 10 \* 2`

#Get tmp memory
tmpsize=`expr $disksize / 10 \* 1 - 20000`
tmpoffset=`expr $usrsize + $varsize`

#Get home memory
homesize=`expr $disksize / 10 \* 2`
homeoffset=`expr $tmpoffset + $tmpsize`

#Get swap offset
swapoffset=`expr $homeoffset + $homesize`

#Confirm tmp memory

#Initial harddisk
echo -n "Init harddisk partition...    "
dd>/dev/null 2>&1 if=/dev/zero of=/"$DEVICEDIR"/"$HARDDISK" bs=1k count=1
fdisk>/dev/null 2>&1 -BI /"$DEVICEDIR"/"$HARDDISK"
$DISKLABEL>/dev/null 2>&1 -B -w -r $HARDDISK$LABEL auto
$DISKLABEL >$PARTITIONFILE /"$DEVICEDIR"/"$HARDDISK"$LABEL

#Initial partition table
echo "d:    $usrsize    0             4.2BSD   2048   16384   89">>$PARTITIONFILE
echo "e:    $varsize    $usrsize      4.2BSD   2048   16384   89">>$PARTITIONFILE
echo "f:    $tmpsize    $tmpoffset   4.2BSD   2048   16384   89">>$PARTITIONFILE
echo "g:    $homesize   $homeoffset    4.2BSD   2048   16384   89">>$PARTITIONFILE
echo "h:    409600      $swapoffset   swap">>$PARTITIONFILE

#Auto partition
$DISKLABEL>/dev/null 2>&1 -R /"$DEVICEDIR"/"$HARDDISK"$LABEL $PARTITIONFILE
echo "done"

#Create file system
echo -n "Format harddisk...            "
newfs>/dev/null 2>&1 /"$DEVICEDIR"/"$HARDDISK"$LABEL$USRNUM
newfs>/dev/null 2>&1 /"$DEVICEDIR"/"$HARDDISK"$LABEL$VARNUM
newfs>/dev/null 2>&1 /"$DEVICEDIR"/"$HARDDISK"$LABEL$HOMENUM
newfs>/dev/null 2>&1 /"$DEVICEDIR"/"$HARDDISK"$LABEL$TMPNUM
echo "done"

# Mount all harddisk partition
echo -n "Mount all partition...        "
mount /"$DEVICEDIR"/"$HARDDISK"$LABEL$USRNUM $USR_DIR
mount /"$DEVICEDIR"/"$HARDDISK"$LABEL$VARNUM $VAR_DIR
mount /"$DEVICEDIR"/"$HARDDISK"$LABEL$HOMENUM $HOME_DIR
mount /"$DEVICEDIR"/"$HARDDISK"$LABEL$TMPNUM $TMP_DIR
echo "done"

#Auto burn dom image
echo -n "Burn dom image...             "
dd>/dev/null 2>&1 if=$Backup_Dir/NetEngine-dombak.img of=$DOM_DEVICE
echo "done"

#Auto uncompress tar.gz pack to harddisk
cd $USR_DIR
echo -n "Unpack usr directory...       "
tar>/dev/null 2>&1 zxvf $Backup_Dir/usrbak.tar.gz ./
echo "done"

cd $VAR_DIR
echo -n "Unpack var directory...       "
tar>/dev/null 2>&1 zxvf $Backup_Dir/varbak.tar.gz ./
echo "done"

cd $TMP_DIR
echo -n "Unpack tmp directory...       "
tar>/dev/null 2>&1 zxvf $Backup_Dir/tmpbak.tar.gz ./
echo "done"

cd $HOME_DIR
echo -n "Unpack home directory...      "
tar>/dev/null 2>&1 zxvf $Backup_Dir/homebak.tar.gz ./
echo "done"

# Umount harddisk
cd /
echo -n "Unmount all partition...      "
umount $USR_DIR $VAR_DIR $TMP_DIR $HOME_DIR
echo "done"


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有