使用 rsync 来测量文件系统之间的差异?

使用 rsync 来测量文件系统之间的差异?

我正在运行一些实验来测试文件系统差异,例如将较旧的 nixOS 版本和较新的版本升级到相同的 flake/配置,以及与 debian 和 ansible 相同的版本。我正在尝试测量哪些是最相似的,并且听说 rsync 是测量这一点的好工具,但我似乎无法找到任何将其用于此目的的好资源。我需要测量文件系统在大小、不同内容(例如文件系统之间同一文件上的不同字节)、丢失/现有文件等方面的差异。显然,我不想包含任何类型的时间戳。人们通常使用什么来衡量这种事情,如果是 rsync,又如何衡量?如果相关的话,我计划使用 nbd 安装两个 qcow2 映像。

答案1

有几个建议。

设想

mkdir -p a/c b/c
date | tee a/1 a/2 > a/c/3
who | tee b/2 > b/c/4
cp a/1 b/1

diff -qr a b

  Files a/2 and b/2 differ
  Only in a/c: 3
  Only in b/c: 4

rsync -nr -iv --delete --size-only --checksum a/ b | grep '^[<*>]'

  >fcsT...... 2      # "2" was in both but different
  *deleting   c/4    # "c/4" was in b but not in a
  >f+++++++++ c/3    # "c/3" was in a but not in b

这两个命令将为您提供不同文件以及缺少或缺少的文件的a报告b。 (两者都不是可靠的机器可解析的,但我认为rsync可能有优势。我已经注释了输出,rsync因为每行表示的内容不一定很明显。)

一般来说,我会diff根据您的情况提出建议,但您询问了rsync,所以我也将其包含在这里。

相关内容