重复数据删除方法


10

我只想在多台计算机上备份和存档文件。不幸的是,这些文件有一些大文件,它们是相同的文件,但在不同的计算机上存储的方式不同。例如,可能有几百张照片作为临时备份从一台计算机复制到另一台计算机。现在,我想建立一个通用的文件存储库,不再需要同一张照片的多个副本。

如果我将所有这些文件都复制到一个目录中,是否有一个工具可以检查并识别重复文件,并提供一个列表,甚至删除其中一个重复文件?


Answers:


3

为每个文件创建一个md5sum,重复的md5sums建议(但不保证)重复的文件。


1
他们强烈建议“但是” :) ..并且如果文件大小相同,则建议正确的可能性非常高
沃伦2010年

2

您可以使用dupemerge将相同的文件转换为硬链接。但是,在大文件集上将花费很长时间。文件的SHA(或MD5)散列几乎可以肯定会更快地工作,但是在查找重复项时您将不得不做更多的工作。意外碰撞的可能性非常低,实际上您可以忽略它。(实际上,许多重复数据删除产品已经这样做了。)

处理照片和音乐的最佳选择是获得量身定制的工具,以便特别查找这些项目的副本。尤其是因为在诸如标记或裁剪或编码差异之类的事情出现之后,您可能没有二进制级别相同的文件。您将需要能够找到“外观”相同的照片和“声音”相同的音乐的工具,即使对文件进行了很小的调整。


1
hardlink速度非常快(120万个文件需要200秒,320GB)
Marcel Waldvogel,2017年

1

好吧,如果有能力,您可以设置一个去重复的文件系统,并在上面进行备份。这不仅会删除整个文件的重复数据,还会删除相似的文件。例如,如果您在多个位置具有相同的JPEG,但每个版本上具有不同的EXIF标签,则重复数据删除文件系统将只存储一次图像数据。

重复数据删除文件系统包括lessfs,ZFS和SDFS。


1
我不能谈论SDFS或lessfs上的重复数据删除,但是ZFS上的重复数据删除无法像这样工作。它在块级别进行检查,因此相同的文件可能会被标记为重复数据删除,而标头不同的文件可能不会。此外,小于ZFS记录大小(默认值为128KB)的文件可以一起打包在一个块中,因此它们也可能无法从重复数据删除中受益。
notpeter 2014年

重复数据删除的文件系统(zfs或btrfs)仅节省备份主机上的空间。它不会保存传输的数据量。计算文件的一些哈希并将其发送到备份主机是一种想法。当它说“我拥有”时,该文件的备份完成。这是在非常昂贵的(金钱)备份软件上实现的。我从未在开源上听说过它。但也许现在就实施了,谁知道呢:)
Znik

rsync --link-dest如果您也想保存读/传输,@ Znik 是您的朋友。一个简单的介绍是在这里:netfuture.ch/2013/08/...
马塞尔Waldvogel

它通过测试分配给文件的索引节点来工作。但是如果隐藏了重复数据删除功能(例如在squashfs文件系统中),则rsync无法检查此项,并且将多次传输相同的数据。
Znik

0

当我做这种事情时,我了解到,实际上,在几个星期的时间里,自己在空闲时间浏览文件会更具吸引力/更省时。您可以通过计算机更好地分辨事物之间的差异。

如果您不同意,那么我建议使用EasyDuplicateFinder。但是,正如我上面提到的,要花5GB的文件大约要花费一天的时间。

另一个要注意的是,Crashplan可以执行您以前所做的事情,但是会以一种更有组织性的,非版本化的方式进行。


0

假设您要备份的计算机将支持它,则另一种可能性是使用rsync

如果rsync从A到B,然后从C到B,然后从D到B,依此类推,则将消除精确的重复项(即,按文件名)(并在要备份的计算机之间同步)。

但是,如果您不希望它们彼此同步,那不是最好的方法。


0

对于图像文件,请使用findimagedupes。它也打包在debian中


findimagedupes用于照片或图形,可能从一种格式转换为另一种格式。照片(我的家)仅是示例。可能是其他任何大文件。
Znik 2014年

0

如果整个文件相同,则硬链接仅执行重复数据删除。如果标题(EXIF,ID3等)或元数据(所有者)不同,则将不会链接它们。

如果您有机会使用支持块重复数据删除的文件系统(ZFS,btrfs等),请改用它。我非常喜欢btrfs 的脱机(aka 批处理)dedup支持,它支持扩展级别的重复数据删除,并且不会不断消耗大量内存(如ZFS联机dedup)。

重复数据删除还具有以下优点:用户可以在不通知其他副本的情况下修改文件(这可能不适用于您的情况,但在其他情况下不适用)。

请参阅https://btrfs.wiki.kernel.org/index.php/Deduplication进行出色的讨论。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.