在我将超过 50 GB(包括不同格式的 30,000 个文件)的文件从内部硬盘复制到外部驱动器后,有什么方法可以确定所有内容是否都已正确复制?此外,如果我通过取消操作而在两者之间停下来,然后在继续操作时说合并,正确性会受到影响吗?
我可以使用类似的应用程序,back-in-time但我在复制文件方面非常挑剔,下次我打算使用copy操作而merge不是replace. 复制大量文件时是否可取?
j-g*_*tus 20
我正在使用hashdeep来验证备份/恢复,并偶尔检查 RAID 中的文件系统损坏。
速度取决于您使用的哈希函数(有些比其他的 CPU 密集度更高)以及磁盘的读取速度。在我的系统上hashdeep可以处理或验证大约 1 TB/小时的 md5 和 300 MB/s 读取速度。
计算校验和并将它们存储在文件中的示例:
cd my-data
hashdeep -rlc md5 . > ~/checksums.txt
Run Code Online (Sandbox Code Playgroud)
参数:
r – 递归l – 使用相对路径c – 指定哈希函数. – 从当前目录开始递归> – 将输出重定向到指定的文件请参阅手册页。
验证校验和并打印差异列表的示例:
$ cd /mnt/my-backup
$ hashdeep -ravvl -k ~/checksums.txt .
hashdeep: Audit passed
Files matched: 40914
Files partially matched: 0
Files moved: 0
New files found: 0
Known files not found: 0
Run Code Online (Sandbox Code Playgroud)
参数:
a – 审计(与已知校验和列表比较)v– 详细(要获取不匹配的列表,多个vs 表示更详细)k – 已知哈希文件请注意,截至 2016 年 3 月hashdeep似乎已被放弃。
dde*_*eke 15
它看起来是rsync的完美任务。Rsync 正在比较和复制差异。
rsync当我看到你的问题时,这个实用程序首先出现在我的脑海中。执行以下操作可以快速显示目录中a但不在 中的文件b:
$ rsync -rcnv a/* b/
-r will recurse into the directories
-c will compare based on file checksum
-n will run it as a "dry run" and make no changes, but just print out the files
that would be updated
-v will print the output to stdout verbosely
Run Code Online (Sandbox Code Playgroud)
这是一个不错的选择,因为您还可以比较文件的内容以确保它们匹配。 rsync的 delta 算法针对此类用例进行了优化。然后,如果您想b匹配 的内容a,您可以删除-n执行实际同步的选项。
一些相关问题: