用 snapper 轻松玩转 Btrfs 的快照功能(2)

命令基本用法

snapper -c <配置名称> delete <快照 1 编号> [<快照 2 编号>...]

用法举例

删除刚才创建的快照。

snapper -c snap_test delete 1 5.4 比较两个快照的差异

命令基本用法

snapper -c <配置名称> status <快照 1 编号>..<快照 2 编号>

执行完该命令之后,snapper 会分析快照 2 相比快照 1 有哪些差异,并将比较结果保存到文件中以便下次快速查询。

具体有哪些差异要看文件名以及对应的旗标。

旗标说明
+   文件被创建  
-   文件被删除  
c   文件内容被修改  
t   文件类型被修改(例如文件变为目录)  
p   文件权限被修改  
u   文件属主别修改  
g   文件属组别修改  
x   文件扩展属性被修改  
a   文件 ACL 权限被修改  

用法举例

在 /mnt/btrfs/ 上创建文件 1.txt,然后拍摄一个快照,再往 1.txt 添加一点内容,然后创建文件 2.txt,再拍摄一个快照。比较这两个快照的差异。

touch /mnt/btrfs/1.txt # 创建 1.txt snapper -c snap_test create # 拍摄快照 echo "Hello" > /mnt/btrfs/1.txt # 添加内容 touch /mnt/btrfs/2.txt # 创建 2.txt snapper -c snap_test create # 拍摄快照 snapper -c snap_test status 1..2 # 比较快照 1 到快照 2 的差异

执行结果

c..... /mnt/btrfs/1.txt # 1.txt 被修改了 +..... /mnt/btrfs/2.txt # 增加了 2.txt 5.5 回滚快照

命令基本用法

snapper -c <配置名称> undochange <快照编号>..<0>

注意

建���在回滚快照之前先为当前状态创建一个快照。

用法举例

回滚到上面创建的快照 1,并对比前后结果。

tree /mnt/btrfs/ # 查看回滚前文件 snapper -c snap_test undochange 1..0 # 回滚快照 tree /mnt/btrfs/ # 查看回滚后文件

执行结果

# 回滚前状态 /mnt/btrfs/ ├── 1.txt └── 2.txt # 执行回滚命令后 创建:0 修订:1 删除:1 # 回滚后状态 /mnt/btrfs/ └── 1.txt 5.6 快照文件的管理

由 snapper 所产生的快照默认存储在子卷下面的 .snapshots 目录中。我们来看一下它的结构:

/mnt/btrfs/.snapshots/ ├── 1 # 快照 1 目录 │ ├── info.xml # 快照基本信息 │ └── snapshot # 快照内容 │ └── 1.txt └── 2 # 快照 2 目录 ├── filelist-1.txt # 快照差异比较结果 ├── info.xml # 快照基本信息 └── snapshot # 快照内容 ├── 1.txt └── 2.txt

可以看到,每个快照的基本信息和内容都在其对应编号的目录中,子目录 snapshot 的内容就是拍摄快照时子卷的所有内容。

快照文件默认是只读的,而且只有 root 可以访问。如果需要恢复单一文件,可以把快照里面的内容用 cp 命令拷贝回来。

由于 Btrfs 文件系统具有写时复制的特性,所以如果文件系统中的文件没有经常被替换,快照占用的空间是非常小的。

六、快照的自动拍摄与清理

自动拍摄及清理快照是 snapper 的特色功能之一。

6.1 开启快照自动拍摄 systemctl start snapper-timeline.timer ; systemctl enable snapper-timeline.timer

默认情况下,每小时自动拍摄一次快照。

如需修改时间间隔,请修改相关的定时器配置文件。修改方法这里就不说了。

快照的清理算法将被自动设定为 timeline。

6.2 开启快照自动清理 systemctl start snapper-cleanup.timer ; systemctl enable snapper-cleanup.timer

默认情况下,每天自动清理一次快照。

如需修改时间间隔,请修改相关的定时器配置文件。修改方法这里就不说了。

不指定清理算法的快照不会被自动清理。

6.3 修改快照自动清理的参数

配置文件位置:/etc/snapper/configs/<配置名称>。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13021.html