出自 Arch Linux 中文维基

Yabsnap 是一個為 Arch 編寫的、用於 Btrfs 分區的定時快照管理器。

安裝

安裝 yabsnapAUR 軟體包,開發版本可以通過 yabsnap-gitAUR 安裝。

配置

運行以下命令創建一個基礎配置文件:

# yabsnap create-config configname

此命令會在 /etc/yabsnap/configs/configname.conf 生成配置文件。編輯該文件並設置以下內容:

  • source - 子卷掛載點。例如 /home
  • dest_prefix - 快照名稱的完整路徑及前綴。例如,/.snapshot/@home- 可能會創建如下格式的備份快照:/.snapshot/@home-20230525120000

您還可以編輯其他參數,以指定何時觸發和清理備份。

主要命令

查看快照

要查看現有的快照,運行:

$ yabsnap list

創建快照

要為所有配置創建快照,運行:

# yabsnap create --comment 'COMMENT'

您也可以為特定的已掛載子卷創建, Yabsnap 會自動找到相應的配置。運行:

# yabsnap --source '/home' create --comment 'COMMENT'

清理或刪除快照

自動清理

Yabsnap 會根據 /etc/yabsnap/configs/*.conf 中的配置自動刪除快照。

刪除快照

您也可以手動刪除快照,使用以下命令:

指定完整路徑以刪除特定快照:

# yabsnap delete /.snapshots/@home-20230525120000

指定時間戳可刪除所有匹配的同時拍攝的快照:

# yabsnap delete 20230525120000

創建回滾

回滾要求:使用 subvol 而不是 subvolid 掛載

建議使用 subvol 而不是 subvolid 來掛載所有卷。

例如下列 fstab 條目:

UUID=[YOUR_UUID] / btrfs rw,noatime,ssd,space_cache=v2,compress=zstd,subvol=/@ 0 0
注意: 使用的符號是 subvol=/@不要 使用 subvolid=

這樣做的原因是回滾機制不會修改您的 fstab 文件,它只會確保正確的快照掛載在相應的位置。

回滾操作

回滾命令通常是安全的,直到執行其生成的腳本。

此命令將生成一個回滾腳本:

請將時間戳更改為現有的某個快照:

$ yabsnap rollback-gen 20230525081049 | tee ~/rollback.sh

執行腳本將真正觸發回滾。建議在回滾之前先檢查生成的命令行。

檢查完生成的回滾腳本後,可以將其設為可執行,然後運行:

# ~/rollback.sh

此操作將對指定時間戳拍攝的所有快照執行回滾。

與 Snapper 的比較

Yabsnap 的創建是為了克服 Snapper 的某些不足。具體而言,它可以做一些 Snapper 難以或無法完成的任務(截至撰寫本文時):

  • 自定義備份目的路徑 (issue)
  • 對所有已配置的快照進行回滾(而不僅僅是默認子卷)
  • 集成了 pacman hook 支持。

參見