跳转至内容

Yabsnap

来自 ArchWiki

Yabsnap 是一个为 Arch 编写的 Btrfs 分区计划快照管理器。

安装

安装 yabsnapAUR 软件包。

配置

运行以下命令来创建一个骨架配置文件

# yabsnap create-config 'configname'

这将创建 /etc/yabsnap/configs/confignane.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

创建回滚

回滚要求:按子卷挂载,而非子卷ID

建议您使用子卷 (subvol) 而非子卷ID (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 对比

它的创建是为了克服 Snapper 的一些不足之处,具体来说,它具有以下在 Snapper 中难以或不可能实现的功能 (截至撰写本文时)

  • 备份的自定义目标 (相关问题)
  • 所有配置的回滚 (不仅仅是默认子卷),
  • 集成的 pacman hook 支持。

参见