dump的功能很強,除了可以備份整個文件外,還能夠針對目錄來備份,還可以指定等級。什么意思呢?假設你的/home是獨立的一個
文件系統,那你第一次進行過dump后,再進行第二次dump時,可以指定不同的等級,如果指定的等級為1,此時設備的數據只會記錄與第一次
備份有所差異的文件而已。
上方的“實時文件系統”是一直隨着時間變化的數據,例如在/home里面的文件數據會一直變化。而下方的方塊則是dump備份起來的數據,第一次
備份時使用的是level0,這個等級也是完整的備份,等到第二個備份時,實時文件系統內容已經與level0不一樣了,而level1僅只是比較目前文件系統與
level0之間的差異后,備份有變化的文件而已。至於level2則是與level1進行比較。
雖然dump支持整個文件系統或者是單一目錄,但是對於目錄的支持比較不足,這是dump的不足所在。
備份數據為單一文件系統
如果是單一文件系統,那么該文件系統可以使用完整的dump功能,包括利用0-9級的數個leve類備份,同時,備份時可以使用掛載點或者是設備文件
名來進行備份。
待備份的數據只是目錄,並非單一文件系統
如果你僅想備份/home/someone/,但是該目錄並非獨立的文件系統時,此時備份就有限制:
- 所有的備份數據都必須要在該目錄(/home/someone/)下面
- 且僅能使用level 0,僅支持完整備份而已
- 不支持-u參數,無法創建/etc/dumpdates這個level備份的時間記錄文件。
dump雖然非常復雜,如果只是想要簡單的操作時,只要記住下面幾個參數:
用dump備份完整的文件系統
看看能否真的新建level1的備份:
備份非文件系統,即單一目錄的方法
現在來處理/etc的dump備份。因為/etc並非單一文件系統,它只是一個目錄而已。所以 -u level1~9都不使用。我們只能使用level0的完整
備份將/etc dump下來 :
一般來說dump不會使用壓縮的功能,不過如果想要將備份空間降低的話,那個-j的參數是可以使用的。加上-j之后你的dump結果會使用較少
的應盤空間。
restore
dump的恢復使用的是restore這個命令。這個命令參數也非常多,可以自行 manrestore,這里只做簡單介紹:
用restore查看dump備份數據內容
這個查詢的數據其實顯示出的是文件名與元文件的inode狀態,所以說我們可以說,dump會參考inode的記錄。通過這個查詢我們可以
知道dump的內容為何。
比較差異並且還原整個文件系統
為什么dump可以進行累計備份呢?就是因為它具有可以查詢文件系統與備份文件之間的差異,並且將分析到的差異進行備份的緣故。
上面的操作,通過曾經備份過的信息,可以找到與目前實際文件系統中有差異的數據。那如何還原呢。由於dump是記錄整個文件系統的
因此還原時你也應該要給與一個全新的文件系統。下面我們新建一個文件系統,然后在還原。
如果還想要將level1的那個文件內容也還原的話,那就繼續使用“restore -r -f /boot/boot.dump1”去還原。
僅還原部分文件的restore
restore內的add除了可以增加文件外,也能夠增加整個備份的目錄。
dd
因為dd可以讀取磁盤設備的內容(幾乎是直接讀取扇區),然后將整個設備備份成一個文件。dd的用途很多,比較重要的參數如下:
你可以說,tar可以用來備份關鍵數據,而dd則可以用來備份整塊分區或整塊磁盤,如果不需要將數據填回到文件系統中,可能需要考慮到原本
的文件系統才能成功。新分區出來的分區不需要經過格式化,因為dd可以將原本舊的分區中扇區表面的數據整個復制過來。當然連同superblock
boot sector , meta data等全部復制過來。未來你想要構建一模一樣的磁盤時,只要執行“dd if=源分區 of=目標分區”,就能夠讓兩塊磁盤一模一樣。