Linux備份真是太方便了,其實我們常用的tar就是很好的增量備份軟件
使用 tar -g 參數進行增量備份實驗
完整備份:
#建立測試路徑與檔案
mkdir test
touch test/{a,b,c};
在test下生成三個文件
#執行完整備份
tar -g snapshot -zcf backup_full.tar.gz test
#查看 tarball 內容
tar ztf backup_full.tar.gz
test/
test/a
test/b
test/c
增量備份:
#新增一個檔案
touch test/d
#執行第一次的增量備份 (注意 tarball 檔名)
tar -g snapshot -zcf backup_incremental_1.tar.gz test
#查看 tarball 內容
tar ztf backup_incremental_1.tar.gz
test/
test/d
#新增一個檔案, 並異動一個檔案內容
touch test/e
echo 123 > test/a
#執行第二次的增量備份 (注意 tarball 檔名)
tar -g snapshot -zcf backup_incremental_2.tar.gz test
#查看 tarball 內容
tar ztf backup_incremental_2.tar.gz
test/
test/a
test/e
還原備份資料:
#清空測試資料
rm -rf test
#開始進行資料還原
tar zxf backup_full.tar.gz
tar zxf backup_incremental_1.tar.gz
tar zxf backup_incremental_2.tar.gz
#查看測試資料
ls test
a b c d e
tar -g /tmp/hello -zcvf /tmp/leo/hello_full.tgz test
tar -g /tmp/hello -zcvf /tmp/leo/hello_incremental _1 .tgz test
tar -g /tmp/hello -zcvf /tmp/leo/hello_incremental _2 .tgz test
使用 tar -u 參數進行增量備份
第一次備份:
#建立測試路徑與檔案
mkdir test
touch test/a test/b test/c
#備份資料
tar zcf backup.tar.gz test
#查看 tarball 內容
tar ztf backup.tar.gz
test/
test/a
test/b
test/c
增量備份:
#新增一個檔案, 並異動一個檔案內容
touch test/d
echo 123 > test/a
#執行增量備份 (-u 參數只能執行於未壓縮的 tarball)
gunzip backup.tar.gz
tar uf backup.tar test
gzip backup.tar
#查看 tarball 內容
tar ztf backup.tar.gz
test/
test/a
test/b
test/c
test/
test/a
test/d
還原備份資料:
#清除測試資料
rm -rf test
#解包 tarball
tar zxf backup.tar.gz
#查看測試資料
ls test
a b c d
對於多次增量備份來說,tar -u 方式比較消耗空間
以上2種增量備份方式對於刪除操作是無法體現在增量備份中的