Yabsnap
Yabsnap 是一个为 Arch 编写的,用于 Btrfs 分区的计划快照管理器。
安装
安装 yabsnapAUR 软件包,开发版本可以从 yabsnap-gitAUR 安装。
配置
运行以下命令来创建骨架配置
# 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
创建回滚
回滚要求:通过 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 的比较
它的创建是为了克服 Snapper 的一些缺点,特别是它执行了以下在 Snapper 中难以或不可能完成的操作(在撰写本文时)
- 备份的自定义目标 (相关问题),
- 所有配置的回滚(不仅仅是默认子卷),
- 集成了 pacman hook 支持。