在过去几年中,我收集的家庭视频的大小急剧增加,安全存储变得越来越成问题。我正在使用存储在 2.5 USB 精简驱动器中的同一集合的 3 个副本。我知道有更安全的方法,但对我来说太贵了。每两年我都会重新制作副本,以避免因消磁而丢失数据。我担心我可能会通过每个复制操作传播损坏的位,或者只是时间使我的文件损坏。
假设我有三个 HDD 驱动器 A、B、C,保存一组文件的相同副本。在完成新的一组副本后,我想执行以下操作:
- 在 A 中存储 A 中所有文件的 md5 校验和文件列表
- B 和 C 中相同
- A 列表与 B 和 C 列表的比较。
我希望,例如 A 驱动器中的任何损坏的视频文件,都将表现为 A 的校验和与 B 和 C 中的校验和不同(当然,找到 3 个不同的校验和代码会令人难过,但我希望这不是案例尚未)
可以使用一些命令行工具(例如 md5sum+find)轻松完成此操作,或者使用我读过一些评论的名为 tripwire 的软件吗?
答案1
这就是我要做的:
要获取文件列表,您可以find > files.txt
从驱动器根目录使用。它将创建一个“files.txt”文件。
然后,要获取每个文件的校验和,您可以使用while read line; do shasum -a 256 $line; done < files.txt > checksums.txt
.它将创建一个包含所有文件路径及其校验和的“checksums.txt”文件。
最后,您可以用来diff -y --suppress-common-lines checksums_driveA.txt checksums_driveB.txt
快速检查校验和文件之间是否存在差异。
或者,您可以只用来diff -r --brief directory/driveA directory/driveB
了解两个目录内容是否相同。