如何得到独特的转储结果?

如何得到独特的转储结果?

我正在尝试检查 FreeBSD 中的只读分区是否保持不变。我使用 dump 执行此操作:

dump -R -h 0 -0Laf /dumps/boot.dump /dev/ufs/boot

然后我计算它的 SHA256。我曾经-R确信它是 rsync 友好的。然而,即使是两个连续的转储也不同。

我用了二进制差异检查差异,发现有 8 个字节,在两个转储中重复多次,每个文件中都相同,但它们对于每个文件都是唯一的。例如,在一个文件中它们是,30 11 68 C6 76 78 13 6A而在另一个文件中它们是12 EA CE AD BC E5 D5 19

这是时间戳吗?我认为-R应该删除它们,而且它们与接近的时间戳有很大不同。

我也对有-D-T,有 和无-R,以及这些 的不同排列进行了检查……结果仍然不一样。

我怎样才能使这些文件独一无二?

答案1

你可以使用mtree(8)为了这。

以下命令给出给定路径下所有文件的 SHA1 校验和、大小和修改时间/usr/local/lib/nss/

mtree -c -k sha1,size,time -p /usr/local/lib/nss/

输出结果如下:

#      user: foo
#   machine: yourbox.some.domain
#      tree: /usr/local/lib/nss
#      date: Sun Nov 20 13:41:00 2016

# .
/set type=file
.               type=dir time=1476030547.604196000
    libcrmf.a   size=112138 time=1476030546.964514000 \
                sha1digest=adf6740ed7a26bf2a47a0a16feb3a4c03c71fdb7
    libfreebl3.so \
                size=7832 time=1476030546.897479000 \
                sha1digest=182acf347c5aedb2a170dbb2b2db2e3315deffea
    libfreeblpriv3.so \
                size=607504 time=1476030546.905097000 \
                sha1digest=e78da683f4eeebd095cf68e7cb94e312d97f0d76
    libnss3.so  size=1190864 time=1476030546.925650000 \
                sha1digest=ef71d6e7381f7912f53ceefb8f5bc573d498b708
    libnssckbi.so \
                size=624552 time=1476030546.938686000 \
                sha1digest=b9136f4ac19fad6609beff75fe49951edb220675
    libnssdbm3.so \
                size=144224 time=1476030546.943065000 \
                sha1digest=61228d4e50516e287b210424cf4aa6c343ebab0d
    libnssutil3.so \
                size=182976 time=1476030546.946941000 \
                sha1digest=9537a0c9e7123e88dd3fe7d0fe84e05cd6a41920
    libsmime3.so \
                size=172336 time=1476030546.950852000 \
                sha1digest=44fc183e1aac7e09b4dc900432b8467457eeef64
    libsoftokn3.so \
                size=275152 time=1476030546.955057000 \
                sha1digest=0bea8dc0448ddf4a5c3ea972b7f6834815cf944e
    libssl3.so  size=354328 time=1476030546.962381000 \
                sha1digest=8e92be9aad3e444da0e72cfa20521a2f9676fc79

填充文件系统后,mtree第一次运行并将输出保存在安全位置。下次运行时mtree,使用该-f选项提供要比较的规范。

相关内容