Yabsnap
外观
Yabsnap 是一个为 Arch 编写的 Btrfs 分区计划快照管理器。
安装
配置
运行以下命令来创建一个骨架配置文件
# 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 支持。