Yabsnap - Arch Linux 中文维基

跳至內容

# Yabsnap

出自 Arch Linux 中文维基
翻譯狀態：

- 本文（或部分內容）譯自 Yabsnap，最近一次同步於 2024-08-16，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

相關文章

- Btrfs
- Snapper

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'

## 清理或刪除快照

### 自動清理

根據 `/etc/yabsnap/configs/*.conf` 中的配置，Yabsnap 會自動刪除超出上限的舊快照。

### 刪除快照

也可以手動刪除快照。

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

    # yabsnap delete /.snapshots/@home-20230525120000

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

    # yabsnap delete 20230525120000

## 回滾

### 回滾注意事項：使用 subvol 而不是 subvolid 掛載

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

例如使用下列 fstab 條目：

    UUID=[YOUR_UUID] / btrfs rw,noatime,ssd,space_cache=v2,compress=zstd,subvol=/@ 0 0

注意：使用的掛載選項是 `subvol=/@`。不要 使用 `subvolid=`。

這樣做的原因是該回滾機制不會修改您的 fstab 文件，它只會確保正確的快照掛載在相應的位置。（如果使用`subvolid`，那麼會掛載原來的子卷）

### 回滾操作

回滾命令是安全的（因為並未執行任何修改操作），直到執行其生成的腳本。

此命令將生成一個回滾腳本，請將時間戳更改為現有的某個快照：

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

只有運行該腳本才會執行真正的回滾操作。因此建議在回滾之前先檢查生成的命令。

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

    # ~/rollback.sh

此操作將回滾前述指定時間戳的所有快照。

## 與 Snapper 的比較

Yabsnap 是為了克服 Snapper 的某些不足而創立。具體而言，它可以做一些 Snapper 難以或無法完成的任務（截至撰寫本文時）：

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

## 參見

- Yabsnap github 頁面

分類：​

- 文件系統

Yabsnap
新增話題