【问题标题】:How to diff md5 sums of two filesystem states?如何区分两个文件系统状态的 md5 总和?
【发布时间】:2019-09-01 08:43:48
【问题描述】:

我正在收集同一文件系统在两个不同时间点的md5sum 快照。 (即,感染之前和之后。)我需要diff 这两个状态,以便查看这两个时间点之间的哪些文件发生了变化。

要收集这些状态,我可能会执行以下操作(在 macOS 上关闭 SIP):

sudo gfind / ! -path '*/dev/*' ! -path '*/Network/*' ! -path '*/Volumes/*' ! -path '*/.fseventsd/*' ! -path '*/.Spotlight-V100/*' -type f -exec md5sum {} \; > $(date "+%y%m%d%H%M%S").system_listing

我遇到的问题是生成的文件大约为 100MB,并且单​​独使用 diff 似乎比较块而不是输出中每个单独文件的 md5sum

有没有一种有效的方法来使用diff 工具来执行此操作,或者是否有必要编写一个脚本来以某种方式根据文件名路径比较两个文件,有效地重新创建差异来比较具有路径作为唯一比较器值的行和然后根据关联的md5sum返回信息?

【问题讨论】:

  • 在黑暗中拍摄:尝试按路径和文件名列对两个状态文件进行排序。
  • 如果您用如何收集 md5sum 快照来更新您的问题,会更有帮助
  • @bigdataolddriver 如果添加有帮助,请告诉我。

标签: filesystems diff md5sum


【解决方案1】:

目录顺序的外观可能会产生很多嘈杂的差异
例如,我运行了以下两个命令,比较了两个充满 pdf 的目录。
一个有1个文件,另一个有几十个文件 交换目录顺序产生 2 diff 行,
相反,我们希望 diff 报告没有 diff 的事实。

find books/ docs-pdf/ -type f  -exec  md5sum {} \; > snapshot1
find  docs-pdf/ books/ -type f  -exec  md5sum {} \; > snapshot2

diff snapshot1 snapshot2
--- snapshot1
+++ snapshot2
@@ -1,4 +1,3 @@
-83322cb1aaa94f9c8e87925f9d2a695e  books/ModSimPy.pdf
 192e5d38e59d8295ec9ca715e784a6d0  docs-pdf/c-api.pdf
 76c5bfb41bc6e5f9c8da1ab1f915e622  docs-pdf/distributing.pdf
 0a630ec314653c68153f5bbc4446660c  docs-pdf/extending.pdf
@@ -25,3 +24,4 @@
 31e3dc3f78a12c59cdc0426d8e75ec99  docs-pdf/tutorial.pdf
 4c59e969009b6c3372804efdfc99e2d9  docs-pdf/using.pdf
 cf5330f4ed5ca5f63f300ccfa3057825  docs-pdf/whatsnew.pdf
+83322cb1aaa94f9c8e87925f9d2a695e  books/ModSimPy.pdf


按第 2 列排序后,diff 成功报告,没有 diff

sort  -k2  snapshot1 >sorted.snapshot1 
sort  -k2  snapshot2 >sorted.snapshot2
diff sorted.snapshot1 sorted.snapshot2

如果这不能解决所有嘈杂的差异输出,请发布您不想要的示例输出片段

【讨论】:

  • 我会看看并报告。我现在遇到的一个问题是速度组件。收集这些信息需要很长时间! :)
  • 获取系统快照的速度很难克服。您必须检查几乎所有内容,并且文件访问时间不可靠
  • 对,所以每个都需要 100 多分钟,但到目前为止似乎效果很好。唯一的问题是,通过这样做我发现了几个问题——但最大的问题是我意识到我需要一个巨大的排除列表,它不能直接使用,需要一个排除文件。如果你有兴趣,我已经继续了,asked another question to keep this clean
猜你喜欢
  • 2011-04-13
  • 2013-11-18
  • 1970-01-01
  • 2019-09-21
  • 2018-08-11
  • 2020-01-16
  • 1970-01-01
  • 2015-12-15
  • 2019-02-28
相关资源
最近更新 更多