A script written to automatically restore system backup on new hard drives

xiaoxiao2021-03-06  67

Description: A freeBSD-based quasi-embedded system was developed before. The basic system is placed on the DOM, and the user data is placed on the hard disk. Because the system is more complicated, each recovery / installation system is very cumbersome. Write a script yourself. Automated installation. These include functions such as partitioning, automatic formatting of hard drives. Interested friends can take a look :) Welcome points! :) #! / Bin / sh

#Root DirectoryBase_dir = / root / autobuild / backup-packbackup_dir = "$ base_dir" / NetEngine / System-Backup

#Partition DirectoryUSR_DIR = / MNT / USRVAR_DIR = / MNT / VARTMP_DIR = / MNT / TMPHOME_DIR = / MNT / HOME

#Device DISKLABEL = / sbin / disklabelDEVICEDIR = devHARDDISK = ad1DOM = ad2LABEL = s1PARTITIONFILE = / tmp / partitionUSRNUM = dVARNUM = eTMPNUM = fHOMENUM = gDOM_DEVICE = / "$ DEVICEDIR" / "$ DOM"

# Auto fdisk #get Harddisk MemoryDiskSize = `$ Disklabel /" $ devicesDir "/" $ harddisk "| GREP" SECTORS / Unit "| awk '{print $ 2}'`

Disksize = `expr $ disksize - 409600` #get usr specusrsize =` expr $ disksize / 10 / * 5`

#Get var Memoryvarsize = `EXPR $ Disksize / 10 / * 2`

#Get Tmp MemoryTmpsize = `EXPR $ Disksize / 10 / * 1 - 20000`tmpoffset =` expr $ usrsize $ varsize`

#Get Home MemoryHomesize = `EXPR $ Disksize / 10 / * 2`homeoffset =` EXPR $ TMPOFFSET $ TMPSIZE`

#Get swap offsetswapoffset = `EXPR $ HOMEOFFSET $ Homesize`

#Confirm TMP Memory

#Initial harddiskecho -n "init harddisk partition ..." DD> / dev / null 2> & 1 if = / dev / zero of = / "$ devicesDir" / "$ harddisk" BS = 1K count = 1fdisk> / dev / Null 2> & 1 -Bi / "$ devicesDir" / "$ harddisk" $ Disklabel> / dev / null 2> & 1 -b -w -r $ harddisk $ label auto $ Disklabel> $ PartitionFile / $ devicesDir "/" $ Harddisk "$ label

#Initial partition tableecho "d: $ usrsize 0 4.2BSD 2048 16384 89" >> $ PARTITIONFILEecho "e: $ varsize $ usrsize 4.2BSD 2048 16384 89" >> $ PARTITIONFILE echo "f: $ tmpsize $ tmpoffset 4.2BSD 2048 16384 89 ">> $ partitionfileecho" G: $ homesize $ homeoffset 4.2bsd 2048 16384 89 "> $ partitionfileecho" H: 409600 $ SWAPOFFSET SWAP ">> $ partitionfile # auto partition $ disklabel> / dev / null 2> & 1 -r / "$ Devicedir" / "$ harddisk" $ label $ partitionfileecho "done"

#Create file systemecho -n "format harddisk ..." newfs> / dev / null 2> & 1 / "$ devicesDir" / "$ harddisk" $ USRNUMNEWFS> / dev / null 2> & 1 / "$ devicesDir" / "$ HardDisk" $ label $ VARNUMNEWFS> / DEV / NULL 2> & 1 / "$ devicesDIR" / "$ harddisk" $ HOMENUMNEWFS> / dev / null 2> & 1 / "$ devicesDir" / "$ harddisk" $ label $ TMPNUMECHO "DONE"

# Mount All HardDisk PartitionechECho -n "Mount All Partition ..." Mount / "$ devicedir" / "$ harddisk" $ label $ usr_r_dirmount / "$ devicesDir" / "$ harddisk" $ label $ VARNUM $ VAR_DIRMOUNT / " $ DevicesDir "/" $ HardDisk "$ HOMENUM $ HOME_DIRMOUNT /" $ devicesDir "/" $ harddisk "$ TMPNUM $ TMP_DIRECHO" DONE "

#Auto burn Dom Imageecho -n "BURN DOM Image ..." DD> / dev / null 2> & 1 if = $ backup_dir / netEngine-Dombak.Img of = $ DOM_DEviceEcho "DONE"

#Auto uncompress tar.gz pack to harddiskcd $ usr_direcho -n "unpack usr Directory ..." tar> / dev / null 2> & 1 zxvf $ backup_dir / usrbak.tar.gz ./echo "done" CD $ var_direcho -n "Unpack var Directory ..." TAR> / dev / null 2> & 1 zxvf $ backup_dir / varbak.tar.gz ./echo "done"

CD $ tmp_direcho -n "unpack TMP Directory ..." TAR> / dev / null 2> & 1 zxvf $ backup_dir / tmpbak.tar.gz ./echo "done"

CD $ home_direcho -n "unpack home directory ..." TAR> / dev / null 2> & 1 zxvf $ backup_dir / homebak.tar.gz ./echo "done"

# Umount harddiskcd / echo -n "unmount all partition ..." umount $ usr_dir $ var_dir $ TMP_DIR $ homen_direcho "DONE"

转载请注明原文地址:https://www.9cbs.com/read-87563.html

New Post(0)