Linux備份命令詳解
在東平等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),全網(wǎng)整合營銷推廣,成都外貿(mào)網(wǎng)站制作,東平網(wǎng)站建設(shè)費(fèi)用合理。
(2008-11-0807:58:34)
轉(zhuǎn)載
標(biāo)簽:
雜談
分類:LINUX學(xué)習(xí)
vdump的常用方式:
1). 對(duì)于文件需要在只讀方式下備份的文件,建議進(jìn)入單用戶:
# init s 或
boot–fl s
2). 對(duì)操作系統(tǒng)各MOUNT點(diǎn)進(jìn)行備份
3). # mount -a
# vdump -0uvf/dev/ntape/tape0_d1 /
# vdump -0uvf/dev/ntape/tape0_d1 /usr
# vdump -0uf/dev/ntape/tape0_d1 /var (如過var區(qū)是做為單獨(dú)的文件子集也需要單獨(dú)備份)
-f : 設(shè)備文件名 ( 比如 DDS tape driver)
-u : 更新/etc/vdumpdates,用于增量備份
- v: 備份內(nèi)容詳細(xì)列表
- 0 : 零級(jí)備份
/dev/ntape0_d1: 系統(tǒng)執(zhí)行完畢后,磁帶停止在當(dāng)前位置,可繼續(xù)往下備份
/;/usr;/var : 各文件系統(tǒng)的MOUNT點(diǎn)
4). 其他說明
a、該命令方式對(duì)系統(tǒng)當(dāng)前mounted的文件系統(tǒng)進(jìn)行備份
b、備份級(jí)別說明
備份級(jí)別有0~9個(gè)級(jí)別,如果當(dāng)前系統(tǒng)采用零級(jí)備份,當(dāng)下一次采用5級(jí)備份時(shí),系統(tǒng)僅將會(huì)對(duì)有變化的文件進(jìn)行備份。
系統(tǒng)恢復(fù)常用命令--vrestore
恢復(fù)整個(gè)操作系統(tǒng)各文件系統(tǒng)的內(nèi)容:
1). 準(zhǔn)備工作:
a. 準(zhǔn)備一個(gè)可用的新硬盤,容量大小和原盤基本相符。
b. 準(zhǔn)備一套與備份系統(tǒng)相同版本的安裝光盤
2). 用操作系統(tǒng)安裝光盤啟動(dòng)到安裝界面,調(diào)整新硬盤各分區(qū)大小后進(jìn)入單用戶。
* bootdqa0 (dqa0 為SRM下的光驅(qū)設(shè)備號(hào))
* 按正常安裝步驟選著OK—》NEXT—》NEXT---》NEXT—NEXT---NEXT-CUSTOMIZEFILE SYSSTEM LAYOUT(調(diào)整分區(qū)大?。?-》QUIT OR SHELL WINDOW。
* 注意:在調(diào)整新硬盤分區(qū)時(shí)一定要在引導(dǎo)塊上選擇ADVFS,并定義B區(qū)為SWAP
3). 創(chuàng)建操作系統(tǒng)的各文件系統(tǒng)。(如系統(tǒng)新盤為 dsk0)
mkfdmn/dev/disk/dsk0a root_temp (創(chuàng)建文件系統(tǒng)域)
mkfset root_temproot (創(chuàng)建文件子集)
mkfdmn/dev/disk/dsk0g usr_temp
mkfset usr_temp usr
mkfset usr_temp var(條件:在原系統(tǒng)中VAR為單獨(dú)的文件子集)
注:在高級(jí)文件系統(tǒng)創(chuàng)建過程中,域名只要不和原來沖突,命名是任意的。但對(duì)文件子集命名方面最好和原來一致。(以避免不必要的修改工作)
4). 操作系統(tǒng)各文件系統(tǒng)的的恢復(fù)
#mount root_temp#root/mnt
#cd /mnt
#vrestore -xvf/dev/ntape/tape0_d1 (恢復(fù)該文件系統(tǒng)上所有數(shù)據(jù))
#cd /
#umount /mnt
#mount usr_temp#usr/mnt
#cd /mnt
#vrestore -xvf/dev/ntape/tape0_d1
#cd /
#umount /mnt
#mount usr_temp#var/mnt (條件:VAR為單獨(dú)的文件子集)
#cd /mnt
#vrestore -xvf/dev/ntape/tape0_d1
-f: 設(shè)備文件名
-x: 恢復(fù)磁帶當(dāng)前備份數(shù)據(jù)段上的所有數(shù)據(jù)
- v: 備份內(nèi)容詳細(xì)列表
5). 如果恢復(fù)硬盤與備份盤在系統(tǒng)中設(shè)備名的不同(如:備份盤為dsk0,恢復(fù)盤為dsk1)需要做以下修改:
#mount root_temp#root/mnt
#cd /mnt/etc/fdmns
#cd root_domain
#rm *
#ln –s/dev/disk/dsk1a
#cd ..
#cd usr_domain
#rm *
#ln –s/dev/disk/dsk1g
#cd /mnt/etc
#vi sysconfigtab
將swapdevice=/dev/disk/dsk0b修改為swapdevice=/dev/disk/dsk1b
6). SHUTDOWN系統(tǒng),在SRM下,用新盤引導(dǎo)
恢復(fù)文件系統(tǒng)中某些目錄或文件:
#vrestore –if/dev/ntape/tape0_d1
(/) add vmunixgenvmunix (在系統(tǒng)根區(qū)備份中只恢復(fù)vmunix和genvmunix兩個(gè)文件)
(/) extract (開始恢復(fù))
對(duì)個(gè)別或若干個(gè)目錄單獨(dú)恢復(fù)同上
操作磁帶機(jī)需要注意的幾個(gè)問題
磁帶機(jī)在備份過程中是分段記錄的,在恢復(fù)時(shí)一定考慮磁帶的位置問題。按上述備份例子,在數(shù)據(jù)帶上一共創(chuàng)建了3段獨(dú)立的數(shù)據(jù)備份信息(/;/usr;/var)。以下命令可調(diào)整數(shù)據(jù)帶的位置。
#mt rewind (磁帶機(jī)回卷磁帶到初始位置)
需要單獨(dú)恢復(fù)/usr文件系統(tǒng)或個(gè)別文件信息:
#mt rewind
#mt fsf 1 ( 跳過第一個(gè)數(shù)據(jù)備份段 / )
如果以上需求發(fā)生在/var上則:
#mt rewind (跳過前兩個(gè)數(shù)據(jù)備份段)
#mt fsf 2
1、可使用dd命令備份到磁帶或者文件中
2、通過rsync命令遠(yuǎn)程同步所有目錄到其他服務(wù)器的共享目錄中。rsync -a / 網(wǎng)絡(luò)共享服務(wù)器IP:/目錄即可,用法可自行查找,很簡單。
scp和rsync 均可實(shí)現(xiàn)文件的復(fù)制,但相比較,scp占用系統(tǒng)資源較小,rsync速度較快。當(dāng)小文件眾多時(shí),rsync會(huì)導(dǎo)致硬盤I/O非常高,而scp基本不影響系統(tǒng)正常使用??筛鶕?jù)需要這倆選其一實(shí)現(xiàn)文件復(fù)制。
scp 是secure copy的縮寫,scp是Linux系統(tǒng)下基于ssh登錄進(jìn)行安全的遠(yuǎn)程文件拷貝命令。
可以實(shí)現(xiàn)本地文件復(fù)制到遠(yuǎn)程服務(wù)器,也可以將遠(yuǎn)程文件復(fù)制到本地。
rsync 是remote sync的縮寫。使用rsync備份數(shù)據(jù)時(shí),不會(huì)直接覆蓋以前的數(shù)據(jù)(如果數(shù)據(jù)已經(jīng)存在),而是先判斷已存在的數(shù)據(jù)和新數(shù)據(jù)的差異(默認(rèn)規(guī)則是文件大小或修改時(shí)間有差異),只有數(shù)據(jù)不相同時(shí)才會(huì)把不相同的部分覆蓋。在僅作增量數(shù)據(jù)的copy時(shí)比scp靈活。
一般CentOS默認(rèn)安裝rsync,若使用 rsync -v 提示找不到命令,可使用 yum install -y rsync 安裝。
單個(gè)冒號(hào)和雙冒號(hào)的區(qū)別 :使用rsync在遠(yuǎn)程傳輸數(shù)據(jù)前,是需要進(jìn)行登陸認(rèn)證的,這個(gè)過程可使用ssh協(xié)議也可以使用rsync協(xié)議完成。單冒號(hào)(:)使用的是ssh協(xié)議;雙冒號(hào)(::)使用的是rsync協(xié)議。
默認(rèn)情況下,rsync只確保源文件的所有內(nèi)容(明確排除的文件除外)都復(fù)制到目標(biāo)目錄。它不會(huì)使兩個(gè)目錄保持不同,并且不會(huì)刪除文件。如果要使目標(biāo)目錄成為源目錄的鏡像副本,則使用--delete選項(xiàng)??蓜h除只存在目標(biāo)目錄,不存在于源目錄的文件。
增量備份算是一個(gè)經(jīng)常使用的場景了。兩臺(tái)服務(wù)器之間進(jìn)行文件定期備份,無需所有文件都copy一遍,僅復(fù)制有變動(dòng)的文件。
具體做法是,第一次同步是全量備份,所有文件在基準(zhǔn)目錄里面同步一份。以后每一次同步都是增量備份,只同步源目錄與基準(zhǔn)目錄之間有變動(dòng)的部分,將這部分保存在一個(gè)新的目標(biāo)目錄。這個(gè)新的目標(biāo)目錄之中,也是包含所有文件,但實(shí)際上,只有那些變動(dòng)過的文件是存在于該目錄,其他沒有變動(dòng)的文件都是指向基準(zhǔn)目錄文件的硬鏈接。
--link-dest 參數(shù)用來指定同步時(shí)的基準(zhǔn)目錄。
上面命令中, --link-dest 參數(shù)指定基準(zhǔn)目錄 /compare/path ,然后源目錄 /source/path 跟基準(zhǔn)目錄進(jìn)行比較,找出變動(dòng)的文件,將它們拷貝到目標(biāo)目錄 /target/path 。那些沒變動(dòng)的文件則會(huì)生成硬鏈接。這個(gè)命令的第一次備份時(shí)是全量備份,后面就都是增量備份了。
一般服務(wù)器之間復(fù)制文件都比較大,為防止誤操作,最好在后臺(tái)運(yùn)行。但因?yàn)樾枰瓦h(yuǎn)程服務(wù)器之間的ssh通訊多是需要密碼的,所以不能直接使用nohup 放置于后臺(tái)。無論是scp還是rsync都可操作如下:
后臺(tái)和前臺(tái)任務(wù)的切換
scp不支持?jǐn)帱c(diǎn)續(xù)傳,掛起scp進(jìn)程可能導(dǎo)致數(shù)據(jù)缺失。傾向于使用rsync。
如果有其他任務(wù)需要使用nohup后臺(tái)運(yùn)行,但執(zhí)行時(shí)卻忘記了使用nohup,也可參照此方法進(jìn)行設(shè)置。
參考:1. Linux之scp命令及后臺(tái)運(yùn)行scp
這里教大家如何用find、xargs和tar命令完成上面的功能。
建立一個(gè)測試環(huán)境,新建幾個(gè)文件
# cd /tmp
# mkdir test
# cd test
# touch a.php b.js c.css 1.png
# ls
1.png ?a.php ?b.js ?c.css
接下來,通過find命令找出指定后綴的文件,為了支持多個(gè)后綴文件,find命令用到了正則匹配
# find . -type f -regex ".*\.\(php\|js\|css\)"
./b.js
./a.php
./c.css
-regex后面的參數(shù)看起來很復(fù)雜,其實(shí)很簡單,我來做個(gè)解釋,雙引號(hào)就不需要解釋了吧
.*\.\(php\|js\|css\) 簡化一下就是.*.(php|js|css),其實(shí)就是對(duì).()|做了下轉(zhuǎn)義而已,開頭的.*匹配除換行符外的任意字符(這個(gè)懂正則表達(dá)式的應(yīng)該都明白)
找出文件后,就是如何備份這些文件了,tar需要指定源文件,怎么獲取find出來的這些文件,并傳給tar呢,xargs的作用就來了。看到下面xargs輸出的是什么了吧,這個(gè)正是tar需要的。
# find . -type f -regex ".*\.\(php\|js\|css\)" | xargs
./b.js ./a.php ./c.css
# find . -type f -regex ".*\.\(php\|js\|css\)" | xargs tar czvf test.tar.gz
./b.js
./a.php
./c.css
下面看看文件是否備份成功了
# tar tzvf test.tar.gz
-rw-r--r-- root/root ? ? ? ? 0 2014-03-14 10:38 ./b.js
-rw-r--r-- root/root ? ? ? ? 0 2014-03-14 10:37 ./a.php
-rw-r--r-- root/root ? ? ? ? 0 2014-03-14 10:38 ./c.css