文件完整性检查器

软件推荐 linux osx 文件管理
2021-10-28 20:10:13

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

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

是否有软件可以扫描文件夹列表、存储可靠的校验和并可以验证添加/删除/修改(损坏)文件的选择?

大约有 3TB 和 2100 万个文件(其中很大一部分是非常小的文件,很明显),所以内存消耗很重要。它应该在 Linux 上运行,最好也可以在 OS X 上运行。

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

3个回答

我开始使用AIDE

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

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

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

sudo port install aide

示例配置文件可在/opt/local/etc/aide.conf. 运行很简单:

aide --init   # Initializes the database - calculates checksums
aide --check  # Checks files against the database
aide --update # Checks files against the database, and updates the database

所有数据都存储在纯文本文件中(这显然容易损坏,但保存副本很容易),因此将工具切换到其他文件应该很简单。


积极的东西:

  • 快速地
  • 支持多种强校验和算法。强烈建议不要使用 md5,因为它基本上已经损坏了
  • 易于在 cron 上运行
  • 基于简短的测试,到目前为止没有问题。正确检测到所有更改(内容和配置的文件属性),以及添加和删除的文件。
  • 支持复杂的文件排除:例如,对临时文件或任何应该更改的文件进行校验和是没有意义的。
  • 计算多个校验和(可配置)。这为未来提供了相对较好的保证——即使一种散列算法被破坏,完整性数据库仍然有用,即使是针对故意修改(相对于位腐烂)。
  • 校验和以明文形式存储,标题包括字段定义。如果配置文件丢失,或者它被另一个程序解析,这很有用。
  • 易于在每个磁盘/CD/文件夹(结构)上存储配置文件和校验和数据库。这样,所有配置选项都会自动存储,并且很容易再次运行完整性检查。

负面观点:

  • 配置需要在文本编辑器上编辑配置文件,而不是拥有漂亮的 UI。同样,检查输出直接到终端。
  • 最新版本是 2010 年发布的,但另一方面它功能齐全,因此无需不断更新。
  • 校验和数据库完整性不会自动验证。幸运的是,单独执行此操作很容易 ( sha1sum checksums.db > checksums.db.sha1sum)

多年来,我一直在使用cfv

  • 它支持递归操作(您可以为每个目录创建一个校验和文件,或者为完整的子树创建一个校验和文件)。
  • 它可以忽略大小写并修复跨平台使用的路径分隔符选项,如果您想在不同的文件系统和/或操作系统上检查/创建校验和,这非常有用。
  • 它是一个控制台应用程序,但它有一个不错的进度条(与 plain 不同md5sum)。
  • 它可以检测添加的文件(-u选项)。

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

没有像oldschool这样的学校。诚然,从我的取证背景来看,我在这里有一点偏见,但你可以运行 md5 sums 并比较它们。

虽然这个 SO 线程有一些有趣的方法,但我更喜欢hashdeep内存使用率很低,虽然它通过一堆处理器周期咀嚼,但通过审计模式的魔力,它会自动通过命令行完成您要求的所有事情 - 通过获取文本文件,并将其与列出的内容进行比较.

虽然该站点有 Windows 二进制文件,但不少发行版和 mac 包管理器都有端口 - 你可以在这里找到完整列表