确保压缩的 zfs 和 ext4 上的两个文件夹相同

确保压缩的 zfs 和 ext4 上的两个文件夹相同

概括

我已将rsync --archive一个文件夹从文件系统复制 ()ext4zfs具有compression on.现在,我尝试验证两个文件夹是否相同,以便我可以安全地删除源文件夹。

重新运行时rsync,不会传输任何额外字节。因此,rsync 确信这两个文件夹是相同的。

但是,使用dudu -b、 或md5sum会对这两个文件夹产生不同的结果。

在删除源文件夹之前,如何说服自己这两个文件夹是相同的?

例子

我上传了一个测试文件夹883包含四个文件。

fiedl@ext4 ▶ du 883
20  883
fiedl@zfs ▶ du 883
57  883

fiedl@ext4 ▶ du -s 883
20  883
fiedl@zfs ▶ du -s 883
57  883

fiedl@ext4 ▶ du -sb 883
4660    883
fiedl@zfs ▶ du -sb 883
570 883

fiedl@ext4 ▶ du 883/*
4   883/big_image001.gif
4   883/image001.gif
4   883/medium_image001.gif
4   883/thumb.png
fiedl@zfs ▶ du 883/*
10  883/big_image001.gif
10  883/image001.gif
10  883/medium_image001.gif
10  883/thumb.png

fiedl@ext4 ▶ tar -cf - 883 | md5sum
7c8a4ff31fdf594b04173789b23c7bb8  -
fiedl@zfs ▶ tar -cf - 883 | md5sum
f207dbadd75126665af300705774c97f  -

答案1

md5sumdiff

假设观察到的差异是不同元数据和 zfs 压缩的结果,md5sum各个文件各自的差异应该还是一样的

cd /path/to/ext4 && find . | xargs md5sum | sort > ~/md5sum-index-ext4
cd /path/to/zfs  && find . | xargs md5sum | sort > ~/md5sum-index-zfs
diff ~/md5sum-index-ext4 ~/md5sum-index-zfs

此解决方法使用递归列出目录中的所有文件find,并md5sum为每个文件添加sort结果,因为find可能会以不同的顺序返回内容。然后可以比较两个文件夹的结果。如果它们相同,则为diff空。否则,具有不同二进制内容的文件将显示在diff.

diff -r

我可以直接使用比较较小的文件夹diff -r。然而,这对于大文件夹来说已经崩溃了,可能是由于内存不足。

diff -r /path/to/ext4 /path/to/zfs

如果两个文件夹相同,则为diff空。

相关内容