我有大量不应该更改的文件,包括RAW照片和视频文件。我担心沉默会腐烂。

我确实有备份来恢复丢失/损坏的文件,但是将当前文件与备份进行比较是不切实际的(例如,视频文件在数字磁带上)。另外,我的备份软件不提供此功能。

大约有3TB和2100万个文件(显然,其中很大一部分是很小的文件),因此内存消耗非常重要。

注意:在Linux上,我已经在运行ZFS,它具有强大的校验和,以及用于检测位翻转的scrub。但是,在OS X /光盘/ USB磁盘(应为FAT)上使用btrfs或btrfs是不可能或不实际的。我非常喜欢与文件系统无关的解决方案。

评论

如果没有任何软件可以自动执行此操作,因为您使用的是OSX和Linux,您可以轻松地设置一个bash脚本和一个cron作业来使用md5sum来执行此操作,以检查所有文件,生成报告等。

我建议您关注下一代文件系统btrfs:plus.google.com/+AaronSeigo/posts/ZAmXwESunL2

与上述问题不同的是:您可能对测试git-annex感兴趣。它的“档案管理员”用例涵盖了损坏的检测和其他副本的修复。是的,您可以要求它在存储区域之间半自动复制数据,以确保有足够的副本可用。默认设置有点“侵入性”,因为所有文件都被指向专用只读目录的符号链接替换,以防止意外写入(可以禁用)。主要是一种Linux工具,它看起来像是作为应用程序捆绑包和自制软件提供的。

#1 楼

我开始使用AIDE:


AIDE(高级入侵检测环境)是文件和目录完整性检查器。


它跟踪更改,添加和修改的文件和文件属性。支持多种校验和算法,包括sha256 / sha512。

在Ubuntu上,可从基础存储库(aide)获得apt-get install aide软件包。在OS X上,编译失败并出现神秘错误,但是使用macports的安装成功:
运行很简单:

sudo port install aide


所有数据都存储在纯文本文件中(显然容易受到损坏,但是保留副本很容易),因此将工具切换到某种方式否则,应该很简单。不建议使用md5,因为它已被破坏。
易于在cron上运行
基于简短的测试,到目前为止没有问题。正确检测到所有更改(内容和配置的文件属性)以及添加和删除的文件。
不支持复杂的文件:例如,检查临时文件或任何应更改的文件没有意义。 br />计算多个校验和(可配置)。这为将来提供了相对良好的保证-即使一个哈希算法遭到破坏,完整性数据库仍然有用,即使是有意的修改(相对于位腐)。
校验和以明文形式存储,标头包含字段定义。如果配置文件丢失或被其他程序解析,这将非常有用。
易于在每个磁盘/ CD /文件夹(结构)上存储配置文件和校验和数据库。这样,所有配置选项将自动存储,并且很容易再次运行完整性检查。

负点:


配置需要在文本编辑器上编辑配置文件,而不是拥有漂亮的UI。同样,检查输出直接到终端。
最新版本是2010年,但另一方面,它是完整的功能,因此不需要不断更新。 。幸运的是,单独执行此操作很容易(/opt/local/etc/aide.conf


评论


在Windows上运作良好?

–起搏器
2015年3月31日23:14



aide --init(或我尝试与aide进行的其他任何操作)在Ubuntu上不起作用-软件包维护者将其破坏。您必须改用aideinit。

– reinierpost
16年5月3日在14:43

MD5存在安全问题,但是为什么这对于OP而言很重要?他不打算安全地哈希敏感数据。实际上,MD5非常常用作文件校验和-示例。除此之外,+ 1是一个很好的答案。

– JBentley
16年6月5日在15:32



另一点-文本文件配置和CLI输出对许多人来说是积极的,而不是消极的。

– JBentley
20年1月8日在13:13

#2 楼

我多年来一直在使用cfv。


它支持递归操作(您可以为每个目录创建一个校验和文件,或者为一个完整的子树创建一个校验和文件。)
它可以忽略大小写并修复路径分隔符选项跨平台使用,如果要在不同的文件系统和/或操作系统上检查/创建校验和,则非常有用。它可以检测添加的文件(md5sum选项)。

我不知道它是否运行或Mac OS X,但它在MacPorts中。

评论


嗯sha1sum *> files.sha1sum; cfv工作正常。根据man的说法,-r -m -u是检查没有哈希的文件的正确选项集。看来工作正常,但是如果修改了带有校验和的文件,它仍然会输出OK。如果带有校验和的文件被删除,它将正确打印“ 1未找到,1未验证”。我本来打算打开bug票,但是没有去注册sourceforge。

–奥利
2014年2月7日在9:07

@Olli:我认为您不需要-m标志。根据手册,-m不比较校验和。尝试cfv -T -uu -f test1.sha1(如果您有一个用于完整目录树的sha1文件)。

–palacsint
2014年2月7日在11:13



由于某种原因,它会对所有内容进行两次检查(是的,我知道评论不是支持论坛)。

–奥利
2014年2月7日,12:47

#3 楼

没有一个学校像旧学校一样。诚然,我的取证背景有些偏颇,但是您可以运行md5和以进行比较。

虽然该SO线程具有一些有趣的方法,但我还是比较喜欢hashdeep。内存使用率很低,尽管它会消耗大量处理器周期,但是通过审计模式的魔力,它可以通过命令行自动执行您要求的所有操作-通过输入文本文件并将其与列出的内容进行比较。

尽管该站点具有Windows二进制文件,但是相当多的发行版,而Mac软件包管理器具有端口-您可以在此处找到完整列表

评论


hashdeep-包括时间估计值-听起来不错,但是我不太喜欢该界面:a)在Mac终端上,进度条/估计值严重损坏,b)对于文件夹,您必须提供--recursive。否则,在--audit中,它只是递归遍历并打印每个文件不使用的已知文件,c)如果文件已复制,则根据哈希深度将其移动(旧文件报告为“不匹配”),而不是“添加” d)审核和更新需要两次通过。

–奥利
2014年2月7日在8:59

“尽管此SO线程有一些有趣的方法[…]”:应该有一个链接吗?

–未成年
2014年4月9日23:30在

我认为他的意思是这个SR线程。

–张德安
2014年5月8日在8:04

我刚刚尝试了hashdeep,希望它能够报告自创建哈希表以来添加或删除的文件。似乎根本没有报告它们的选项。奇怪。

– reinierpost
16年4月28日在8:00