使用 rsync 進行完整差異備份的最有效和最安全的方法
我正在網上搜尋以找到一種方法來對我的 linux 機器(不是伺服器)進行完整備份並隨時恢復所有內容。
我從每個執行緒上鍊接最多的指南開始,http://www.mikerubel.org/computers/rsync_snapshots/index.html,我認為這種類型的備份是增量備份,經過另一天的研究,我發現 了什麼是就 rsync 命令而言,差異備份和增量備份之間的區別?和其他討論,但我不確定我到底在做什麼。
按照指南和文章,我決定嘗試使用一個名為 source 的文件夾(在備份整個系統之前)
rsync -av --delete /home/user/source /home/user/backup/backup0/
然後我添加和刪除了一些文件,又備份了三遍
rsync -avH --delete --link-dest=/home/user/backup/backup0 /home/user/source /home/user/backup/backup1 rsync -avH --delete --link-dest=/home/user/backup/backup1 /home/user/source /home/user/backup/backup2 rsync -avH --delete --link-dest=/home/user/backup/backup2 /home/user/source /home/user/backup/backup3
我認為通過這種類型的備份,我將擁有類似的東西:
backup0-->backup1-->backup2-->backup3
因此,如果我想恢復“backup3”的內容,則需要 #1 e #2,但我刪除了它們,然後恢復了 backup3,一切都恢復了原狀。所以我跑了
user@user:/backup$ du -sh * 450M backup0 620K backup1 624K backup2 628K backup3
它看起來像差異備份,而不是增量備份,但我認為要進行差異備份,我必須為每個備份設置
--link-dest=/home/user/backup/backup0
我的問題是:我錯了嗎?有沒有更好的方法來使用 rsync 備份完整的系統?
PS:目標設備將是具有相同文件系統的外部驅動器。
使用硬連結,可以儲存一個文件的多個副本,並且只佔用一個副本的磁碟空間。您所看到
du
的注意不要重複計算指向同一文件的多個硬連結所佔用的空間。如果您要執行:
du -sh backup3
你會發現backup3佔用了450M左右。如果你執行:
du -sh backup2 backup3
你會發現backup2佔用了大約450M,而backup3佔用很少。那是因為
du
首先查看了 backup2 併計算了它的空間。當它查看backup3 時,它只計算已使用的新磁碟空間,而不計算已在backup2 中計算的文件的硬連結。每個備份都是完整的,並且具有執行完整還原所需的一切。但是,因為文件是硬連結的,所以使用的總磁碟空間要少得多。
例子
我在目錄中放了一個 1.2MB 的文件
src/
。讓我們創建兩個備份:$ rsync -a src backup1 $ rsync -a --link-dest=../backup1 src backup2
讓我們看看backup2有多大:
$ du -sh backup2 1.2M backup2
backup2 有 1.2 兆字節。現在讓我們看看 backup1 和 backup2 有多大:
$ du -sh backup1 backup2 1.2M backup1 8.0K backup2
現在,backup2 似乎只有 8k。那是因為硬連結沒有被重複計算。