验证数据的完整性

验证数据的完整性

我刚刚设置了一个带有 TB 级驱动器的 FreeNAS 服务器。我希望每台机器只安装一个硬盘,因此我尽可能多地获取数据并通过 LAN 将其发送到 FreeNAS。我注意到至少一个文件未正确复制,现在已损坏。(我还注意到一些奇怪的权限问题,但这是另一个问题。)现在大多数数据都在 FreeNAS 服务器上,是否有一种自动验证其他数据是否损坏的方法?

我不知道如何描述文件是如何损坏的。基本上它看起来是一个 178 兆字节的视频文件,但当访问它进行播放甚至移动时,访问它的 Windows 计算机会给出无法访问的通用错误消息。我使用 FreeNAS 的 Web 复制界面来移动文件,一旦移动,文件就变成了 76 兆字节,无法播放。

答案1

始终运行:

cd /filesystem; \
find . -type f -exec md5sum {} \; >& /filesystem-md5.log

进而

cd /filesystem-new; \
md5sum -c /filesystem-md5.log

复制大量数据之前和之后。

您会惊讶于现实世界中会遇到多少随机数据损坏。

当您发现损坏的文件时,cmp -l badfile goodfile尝试了解损坏的性质。

这就是为什么我恳求在所有情况下都进行端到端完整性检查。不幸的是,文件系统和操作系统供应商并不重视这一点。

答案2

您可以检查助手。我想还有其他的诚信工具。

它根据从配置文件中找到的正则表达式规则创建一个数据库。初始化此数据库后,即可使用它来验证文件的完整性。它有几种消息摘要算法(md5、sha1、rmd160、tiger、haval 等),用于检查文件的完整性。可以相对轻松地添加更多算法。还可以检查所有常用文件属性是否存在不一致。它可以读取旧版本或新版本的数据库。有关更多信息,请参阅发行版中的手册页。还有一个手册的开头。

相关内容