ufsdumo和ufsrestore命令是UNIX文件系統(tǒng)標(biāo)準(zhǔn)的備份恢復(fù)應(yīng)用程序。ufsdump常被設(shè)置在夜間的cron任務(wù)中,從而減小對(duì)服務(wù)器系統(tǒng)運(yùn)行負(fù)荷的壓力。usfrestore一般在系統(tǒng)崩潰以后單用戶模式運(yùn)行。ufsdump可以在已裝載的文件系統(tǒng)上運(yùn)行,不過,最好首先卸載系統(tǒng),對(duì)文件系統(tǒng)進(jìn)行檢查(使用fsck命令),然后重新裝載系統(tǒng),最后進(jìn)行備份。
計(jì)劃進(jìn)行ufsdump遇到的關(guān)鍵概念是特定備份的級(jí)別。備份級(jí)別能夠確定ufsdump命令進(jìn)行的完整的還是增量的備份。完整備份由備份級(jí)別0表示,而數(shù)字1-9會(huì)隨機(jī)分配給增量備份的級(jí)別。增量備份中分配備份級(jí)別的編號(hào)唯一限制是編號(hào)之間的關(guān)系:日常的增量備份要使用較大的級(jí)別編號(hào),每周起始應(yīng)當(dāng)使用一個(gè)小的編號(hào)來指明增量備份過程重新開始。這種備份方法會(huì)對(duì)所有的文件使用相同的一組磁帶,不管文件是那一天記錄下來的。例如周一到周六使用備份級(jí)別是9,周日要使用備份級(jí)別是1。當(dāng)周一到周六達(dá)到循環(huán)增量備份完成后,整個(gè)過程又會(huì)在周日重新開始。
有些機(jī)構(gòu)喜歡將每天的歸檔內(nèi)容分別存儲(chǔ)在不同的磁帶上,這樣可以很方便的從增量備份中恢復(fù)文件。從增量備份恢復(fù)文件時(shí),速度是最重要的,而且是否需要提取特定日期的備份也很重要。例如,一個(gè)用戶想提取一個(gè)曾在周三和周四編輯過的文件的一個(gè)版本,而且只需要最新的版本前前的一個(gè)版本(周三的版本),這時(shí)就可以使用周三的磁帶,用ufsdumop命令來提取這個(gè)文件。每周的完整備份計(jì)劃是在周日進(jìn)行,因?yàn)橹苋帐褂孟到y(tǒng)的人比較少。因此周提的備份級(jí)別為0,然后周一,周二,周三,周四及周五的備份級(jí)別分別是5,6,7,8,9.為了表示一個(gè)備份循環(huán)的結(jié)束,周六應(yīng)當(dāng)使用一個(gè)比周一小的級(jí)別進(jìn)行編號(hào),可以是1,2,3,4。
在進(jìn)行ufsdump之前,應(yīng)當(dāng)估計(jì)一下備份的大小,以決定需要使用多少存儲(chǔ)的磁帶。通過估計(jì)可以根據(jù)磁帶大小的容量將備份的數(shù)據(jù)分塊。例如,要確定需要多少磁帶來備份/dev/rdsk/c0t0d0s4的文件系統(tǒng),使用如下命令:
# ufsdump s /dev/rdsk/c0t0d0s4
50765536
該分區(qū)大概有48MB的數(shù)據(jù),因此可以很容易地傳送到一盤磁帶上,對(duì)一個(gè)x86分區(qū)(/dev/rdsk/c0t0d0s0)進(jìn)行級(jí)別0的完整備份,可以使用如下方法:
# ufsdump 0cu /dev/rmt/0 /dev/rdsk/c0t0d0s0
傳送給ufsdump的參數(shù)包括0(備份級(jí)別),c( 盒式磁帶:分塊參數(shù)126)和u(更新備份記錄/etc/dumpdates)。備份記錄被ufsdump和ufsrestore用于跟蹤每個(gè)文件系統(tǒng)最后一次備份的情況。
# cat /etc/dumpdates
ufsdump應(yīng)用非常靈活,因?yàn)樗梢耘crsh(遠(yuǎn)程shell)和遠(yuǎn)程訪問驗(yàn)證文件(.rhosts和/etc/hosts.equiv)一起使用,遠(yuǎn)程登陸到另外一臺(tái)服務(wù)器,將文件備份到遠(yuǎn)程服務(wù)器的備份設(shè)備中,不過,這種方法存在的另一個(gè)問題是,是用.rhosts文件會(huì)使系統(tǒng)很容易受到攻擊不過安全shell工具可以幫助消除使用遠(yuǎn)程命令的需要。混合使用ssh和ufsdump,可以從客戶端進(jìn)行文件的完整備份,然后將備份安全的轉(zhuǎn)移到備份服務(wù)器,而后復(fù)制到備份服務(wù)器的遠(yuǎn)程設(shè)備上。
# ufsdump 0f -/ | ssh server ``dd of=/dev/rmt/0 bs=24b conv=sync``
管理員常用的一個(gè)小技巧是使用ufsdump在文件系統(tǒng)中之間移動(dòng)目錄。方法是使用ufsdump對(duì)特定文件系統(tǒng)進(jìn)行操作,然后將結(jié)果通過管道輸送給ufsrestore,而后傳送到目錄中,例如:
# mkdir /newstaff
# cd /staff
# ufsdump 0f -/dev/rdsk/c0t0d0s2 | (cd /newstaff; vufsrestore xf -)
使用ufsdump命令備份數(shù)據(jù)后,使用ufsrestore可以很容易地將這些數(shù)據(jù)恢復(fù)。要想從/dev/rmt/0磁帶驅(qū)動(dòng)器中提取數(shù)據(jù),可以使用如下命令:
# ufsrestore xf /dev/rmt/0
ufsrestore命令會(huì)提取這個(gè)磁帶卷上的所有文件。不過,也可以只將卷中的內(nèi)容列表顯示至標(biāo)準(zhǔn)輸出而不進(jìn)行提取,這一功能可以用于用戶不確定特定磁帶中的內(nèi)容情況:
# ufsrestore tf /dev/rmt/0