透過 Rclone 和 Restic 自動化備份 Linux 系統檔案
會用到的工具
- Rclone
用來掛載雲端存儲並且加密 - Restic
非常好用的備份程式,多平台支援、各種存儲類型 (其實它本身就有加密功能,所以如果你不是跟我一樣和人合租企業雲端的話可以不用 Rclone),產生的備份文件是快照式的,只會備份更改部分因此不會過度增加使用量,要恢復備份也很簡單 Resticprofile用來控制 Restic 的工具,可以把 Restic 各種設定寫成 toml/yaml 等格式的設定檔,並且支援 systemd/crontab 等排程方式
已棄用 Resticprofile, 轉用 Backrest, 一套 GUI 管理系統,更方便排程,並且集成 Webhook 通知功能,未來路線圖有管理多個伺服器上的備份任務,未來可期!
工作邏輯
Rclone 掛載雲端 -> Rclone 加密 -> Restic 備份
所有過程通過 Resticprofile 手動觸發或排程
Rclone 設定
首先輸入 sudo rclone config
這邊建議用 sudo 執行的原因是因為 Rclone 產生的設定檔會在當前使用者的 .config 裡面
如果沒有用 sudo 執行的話等一下後面要透過 Resticprofile 以 system 身分執行 (備份的路徑需要 root 權限) 時候他會抓不到 Rclone 的 config (例如他會抓到 /home/username/.config/rclone/rclone.conf 去導致你備份失敗)
sudo rclone config |
根據他給的選項增加你要的雲端提供商進去,一般來講大部分情況都是使用預設設定就可以,比較要注意的是如果你是在沒有桌面環境的 VPS 上進行操作需要去 Rclone document 看一下如何遠端驗證
再來再次新增一個 remote ,這次選 crypt
根據你想要的加密程度進行設定,然後後面的位置要填你剛剛創建的第一個 remote 名稱 + 路徑 (remoteName:path)
保存之後 Rclone 設定部分就結束了
Restic 安裝並準備儲存庫
Doc: https://restic.readthedocs.io/en/stable/index.html
Debian 系安裝很簡單
apt-get install restic |
安裝完成後創建新的儲存庫 (以 Rclone 為例子)
restic -r rclone:加密的 remote 名稱:路徑 init |
我自己的習慣是 rclone:encryptRemoteName:hostname
,見仁見智,方便自己辨識哪個庫是自己的就好
Resticprofile 安裝與設定
Install:
curl -LO https://raw.githubusercontent.com/creativeprojects/resticprofile/master/install.sh |
Update:
resticprofile self-update |
設定檔:
我一般放在 /home/userName/restic
mkdir restic |
填入
version = "1" |
我自己 schedule 用的格式是 systemd
之後要進行排程
sudo resticprofile schedule |
如果之後要更改排程時間,在修改完設定檔後還要
sudo resticprofile unschedule |
修改才會生效
執行第一次備份
在 Resticprofile 路經中執行
resticprofile backup |
第一次根據系統大小不同會跑一段時間,跑完後就一勞永逸了,之後會自動執行排程的備份任務不需要再手動操作