為什么選擇 restic,主要基于以下幾點考慮:
- rclone sync 只支持本地向遠程無條件的同步也糊,遠程的永遠會被覆蓋
- Brog是純 C 開發(fā)的,只在*nix系統(tǒng)下運行,而 restic 可以在任何 CPU架構瓦灶,任何系統(tǒng)上運行,因為是由 go 開發(fā)的抱完,運行效率接近于 C 贼陶。
- rsync 對于新手并不友好,而且只有 *nix 版本巧娱,雖然也有 windows 版本碉怔,但似乎不是官方出品。
首先家卖,創(chuàng)建一個備份倉庫眨层,如果結合 rclone 使用,可以指定一個掛在為遠程服務器的位置上荡,沒有的話趴樱,可以使用本地路徑作為備份倉庫。
restic init --repo ./backup
執(zhí)行此命令后酪捡,會讓你輸入備份倉庫密碼叁征,注意如它所說,記住此密碼不要丟失逛薇。這個命令的執(zhí)行可能需要等待1分鐘左右捺疼,對于 NFS 文件系統(tǒng),可能需要的時間更長永罚,等就是了啤呼。
enter password for new repository:
enter password again:
created restic repository a6801fab57 at ./backup
Please note that knowledge of your password is required to access
the repository. Losing your password means that your data is
irrecoverably lost.
添加一個本地文件夾到備份倉庫,你也可以繼續(xù)添加其它的文件夾呢袱。
restic --repo ./backup backup ./mywork
同樣官扣,對于訪問備份倉庫,需要密碼訪問羞福,然后這個過程也會比較長惕蹄,因為都是基于文件哈希值作為備份版本的依據,此時命令會提示:
enter password for repository:
repository a6801fab opened successfully, password is correct
Files: 1 new, 0 changed, 0 unmodified
Dirs: 0 new, 0 changed, 0 unmodified
Added to the repo: 319 B
processed 1 files, 19 B in 0:08
snapshot 8c4b2b4a saved
最后的一行,snapshot 8c4b2b4a saved 中的8位字符就是本次的備份版本號卖陵,這和 Git 十分類似遭顶,用過的大家都知道,以后無論是刪除備份還是還原備份泪蔫,都是基于這個版本號棒旗。
查看備份庫中的所有備份快照:
restic -r ./backup snapshots
在恢復備份之前,我們都會查看一下快照鸥滨,防止恢復了錯誤的版本嗦哆,可以使用上面的命令。
enter password for repository:
repository a6801fab opened successfully, password is correct
ID Date Host Tags Directory
----------------------------------------------------------------------
8c4b2b4a 2018-10-15 16:59:48 DELL-PC E:\Temps\mywork
----------------------------------------------------------------------
1 snapshots
在以上的表格中婿滓,ID 就是備份的版本號老速,Date 是備份快照創(chuàng)建日期, HOST 是備份客戶端的主機名凸主,Tags 是標簽橘券,在我們這個演示中沒有用到,Directory 是客戶端原始備份目錄卿吐,這是因為它可以支持多個客戶端旁舰,多個倉庫的備份, restic 更像是一個集中式的版本備份系統(tǒng)嗡官。
接下來是如何還原一個備份箭窜,十分簡單,指定 restore 哪一個版本號衍腥,以及 target 指向一個恢復路徑磺樱,就會完成備份的還原。
restic -r ./backup restore 8c4b2b4a --target ./mywork_restore