備份真正被驗證的那一刻:命令列工具的三件套
摘要
多數複製貼上式備份缺的三件事:資料在離開機器前就加密、快照只存真正變動的部分,以及那份檔案隨時可以被檢查。
推薦- 軟體名稱
- restic
- 版本
- 0.19.1
- 收費
- 免費
- 開源
- 開源
- 作業系統
- WindowsmacOSLinuxBSD
- 更新時間
- 2026-10-08 20:48
常見做法裡的三個毛病
多數人的備份策略,就是把一個資料夾複製到外接硬碟,想起來的時候再更新一次。它在三個具體的地方失效。第一,沒有加密,所以硬碟被偷就等於整份檔案被偷。第二,不是增量的,於是每次都要把整個大資料夾重抄一遍,抄到最後人就不抄了。第三,無法驗證,於是在真正需要它的那一天之前,沒有人知道那份副本完不完整——而那正是發現損壞最糟糕的時刻。
restic 把這三件事都做成預設而不是選項。資料在送出之前就在用戶端加密,所以每一個目的地存的都是密文。快照只記錄與上一次相比真正變動的部分,並在區塊層級去重,於是一個大資料夾的一百份每日快照,佔用的空間只比變動量多一些。而倉庫帶著可以隨時驗證的校驗值,於是把「我覺得我的備份沒問題」變成一句可以被測試的話。

一個執行檔,所有後端
讓它實用的設計決定,是統一的倉庫抽象。本機資料夾、網路分享、雲端物件儲存,以及透過安全通道連上的遠端伺服器,全部用同一種方式描述,於是換目的地只是改一個路徑,而不是搬移一種格式。執行檔自成一體且跨平台,這對真正會毀掉多數備份計畫的情況很重要:你要還原到的那台機器,並不是你備份的那一台。
指令集小到一個晚上可以學完:初始化倉庫、建立快照、列出快照、檢查完整性、套用保留策略、還原。保留是用規則表達而不是排程表,所以「留最近七份每日、四份每週、十二份每月」是一行指令;清理會移除沒有任何快照引用的區塊,讓倉庫不會無限制地長大。
它要什麼,以及它拒絕什麼
代價是:它是命令列工具,而且帶著一個密碼,兩者都需要小心。倉庫密碼一旦弄丟,資料就沒了,因為加密的意思就是這樣;把密碼跟倉庫放在同一個地方,會以一種很容易不小心犯下的方式摧毀整個目的。排程也是你的事,不論是用系統計時器或腳本裡的一行;監控同樣是,因為一個已經默默失敗三週的備份工作,比完全沒有備份更糟。
它也拒絕當同步工具。沒有持續鏡像,也沒有衝突解決,因為那是不同的問題、有不同的故障模式。把它當同步工具用,是對它失望最常見的方式,而檔案也直說了——這是一種禮貌。
加密、去重、可驗證,不該是加值功能。它們是把一件事叫做「備份」的最低標準;一個把它們做成預設值的工具,等於替你把爭論裡最乏味的那一段做完了。
一套值得照抄的設定。把倉庫放在不是你正在備份的那台機器上;如果資料要緊,在別處再留一份倉庫。密碼寫在紙上、實體收好,因為把密碼管理器放在你正在還原的那台機器裡,是一個結局很難笑的笑話。把工作排進排程、把輸出寫進日誌、並且去看那份日誌。每季做一次還原:挑一個資料夾還原到暫存位置,打開一個檔案看看——沒驗證過的備份是檔案,不是保險。