如何查看 ZFS 快照的差别

要确定 ZFS 快照之间的差异,可以使用 zfs diff 命令。
此命令的输出提供了快照和后代数据集之间差异的高级描述。
后代可以是数据集的快照,也可以是当前数据集。
对于在原始快照和后代之间发生更改的每个文件,更改的类型与文件名一起描述。
在重命名的情况下,旧名称和新名称都会显示。
更改类型遵循所显示的任何时间戳,并被描述为单个字符。

让我们看一个示例,以进一步了解“zfs diff”命令的工作原理。

  1. 在示例中,拍摄了 rpool/export/home ZFS 文件系统的前快照。
# zfs snapshot rpool/export/home@before
  1. 然后在/export/home/geek 目录中创建了一个新文件(newfile)。
# touch /export/home/file1
  1. 然后拍摄了相同 ZFS 文件系统的另一个快照(之后)。
# zfs snapshot rpool/export/home@after
  1. zfs list 命令用于根据名称和创建日期列出快照。
# zfs list -r -t snapshot -o name,creation rpool/export/home
NAME                      CREATION
rpool/export/home@before  Sun Jan 14  8:07 2018
rpool/export/home@after   Sun Jan 14  8:13 2018
  1. 然后运行“zfs diff”命令来确定前后快照之间的差异。
# zfs diff rpool/export/home@before rpool/export/home@after
M       /export/home/
+       /export/home/file1

zfs diff命令输出中的M表示修改了/export/home/目录,+表示后面的快照中存在文件/export/home/file1.
下表总结了由 zfs diff 命令标识的文件或者目录更改。

文件或者目录更改标识符
文件或者目录被修改,或者文件或者目录链接已更改。M
文件或者目录存在于较旧的快照中,但不存在于较新的快照中。-
文件或者目录存在于较新的快照中,但不存在于较旧的快照中。+
文件或者目录被重命名。R
日期:2020-09-17 00:15:10 来源:oir作者:oir