Möglichkeiten zum Deduplizieren von Dateien


10

Ich möchte die Dateien einfach auf mehreren Computern sichern und archivieren. Leider haben die Dateien einige große Dateien, die dieselbe Datei sind, aber auf verschiedenen Computern unterschiedlich gespeichert sind. Beispielsweise können einige hundert Fotos als Ad-hoc-Sicherung von einem Computer auf den anderen kopiert werden. Jetzt, da ich ein gemeinsames Repository für Dateien erstellen möchte, möchte ich nicht mehrere Kopien desselben Fotos.

Wenn ich alle diese Dateien in ein einziges Verzeichnis kopiere, gibt es ein Tool, das doppelte Dateien erkennt und mir eine Liste gibt oder sogar eines der doppelten löscht?


Antworten:


3

Erstellen Sie eine md5sum von jeder Datei. Duplikate md5sums schlagen doppelte Dateien vor (garantieren jedoch nicht).


1
sie stark „vorschlagen“, aber :) ..und wenn die Dateien die gleiche Größe, die Wahrscheinlichkeit , dass der Vorschlag korrekt zu sein , ist außergewöhnlich hoch sind
warren

2

Sie können dupemerge verwenden , um die identischen Dateien in Hardlinks umzuwandeln . Bei einem großen Dateisatz wird es jedoch sehr lange dauern . SHA- (oder MD5-) Hashes der Dateien funktionieren mit ziemlicher Sicherheit schneller, aber Sie müssen mehr Arbeit leisten, um die Duplikate zu finden. Die Wahrscheinlichkeit einer versehentlichen Kollision ist so gering, dass Sie sie in Wirklichkeit ignorieren können. (Tatsächlich tun dies bereits viele Deduplizierungsprodukte.)

Ihre beste Wahl für den Umgang mit Fotos und Musik ist es, Tools zu erhalten, die speziell auf das Auffinden von Duplikaten dieser Elemente zugeschnitten sind. Zumal Sie möglicherweise keine Dateien haben, die auf Binärebene identisch sind, nachdem Dinge wie Markieren oder Zuschneiden oder Codierungsunterschiede ins Spiel gekommen sind. Sie benötigen Tools, mit denen Sie Fotos finden können, die gleich "aussehen", und Musik, die gleich "klingt", selbst wenn geringfügige Anpassungen an den Dateien vorgenommen wurden.


1
hardlinkist sehr schnell (dauerte 200 Sekunden für 1,2 Millionen Dateien, 320 GB)
Marcel Waldvogel

1

Wenn Sie die Möglichkeit haben, können Sie ein deduplizierendes Dateisystem einrichten und Ihre Backups darauf ablegen. Dadurch werden nicht nur ganze Dateien, sondern auch ähnliche Dateien dedupliziert. Wenn Sie beispielsweise an mehreren Stellen dasselbe JPEG haben, jedoch in jeder Version unterschiedliche EXIF-Tags verwenden, speichert ein deduplizierendes Dateisystem die Bilddaten nur einmal.

Das Deduplizieren von Dateisystemen umfasst lessfs, ZFS und SDFS.


1
Ich kann nicht über Deduplizierung unter SDFS oder lessfs sprechen, aber Dedupe unter ZFS funktioniert so nicht. Es wird auf Blockebene überprüft, sodass identische Dateien wahrscheinlich für die Deduplizierung markiert werden, Dateien mit einem anderen Header jedoch wahrscheinlich nicht. Darüber hinaus können Dateien, die kleiner als Ihre ZFS-Datensatzgröße sind (Standard sind 128 KB), in einem einzigen Block zusammengefasst werden, sodass sie möglicherweise auch nicht von Deduplizierung profitieren.
Notpeter

Das duplizierte Dateisystem (zfs oder btrfs) spart nur Speicherplatz auf dem Sicherungshost. Es werden keine übertragenen Daten gespeichert. Es ist eine Idee, einen Hash für Dateien zu berechnen und an den Sicherungshost zu senden. Wenn "Ich habe es" angezeigt wird, wird die Sicherung für diese Datei durchgeführt. Dies ist auf einer sehr teuren (Geld-) Backup-Software implementiert. Ich habe noch nie auf Open Source davon gehört. Aber vielleicht ist es jetzt implementiert, wer weiß :)
Znik

@Znik rsync --link-destist dein Freund, wenn du auch beim Lesen / Übertragen sparen möchtest. Eine einfache Einführung ist hier: netfuture.ch/2013/08/…
Marcel Waldvogel

Es funktioniert durch Testen von Inodes, die einer Datei zugewiesen sind. Wenn die Deduplizierung jedoch ausgeblendet ist, z. B. im Squashfs-Dateisystem, kann rsync dies nicht überprüfen und überträgt dieselben Daten viele Male.
Znik

0

Als ich so etwas gemacht habe, habe ich gelernt, dass es viel ansprechender / zeiteffizienter ist, die Dateien in Ihrer Freizeit innerhalb von ein paar Wochen selbst durchzugehen. Sie können den Unterschied zwischen den Dingen viel besser erkennen als Ihr Computer.

Wenn Sie nicht einverstanden sind, empfehle ich EasyDuplicateFinder . Wie oben erwähnt, dauert es jedoch etwa einen Tag, bis 5 GB Dateien vorhanden sind.

Und in einem anderen Punkt macht Crashplan das, was Sie zuvor getan haben, aber auf eine viel besser organisierte Art und Weise, bei der keine Versionierungsprobleme auftreten.


0

Eine andere Möglichkeit, vorausgesetzt, die von Ihnen gesicherten Maschinen unterstützen dies, besteht darin, so etwas wie zu verwenden rsync.

Wenn Sie rsyncvon A nach B, dann von C nach B, dann von D nach B usw. gehen, werden exakte Duplikate (dh nach Dateiname) entfernt (und zwischen den Maschinen, die Sie sichern, synchronisiert).

Wenn Sie jedoch nicht möchten, dass alle miteinander synchronisiert sind, ist dies nicht der beste Weg.


0

Verwenden Sie für Bilddateien findimagedupes . Es ist auch in Debian verpackt .


findimagedupes ist für Fotos oder Grafiken gedacht, die möglicherweise von einem Format in ein anderes konvertiert wurden. Fotos (ich zu Hause) ist nur ein fragliches Beispiel. Es können auch andere große Dateien sein.
Znik

0

Hardlinks führen nur dann eine Deduplizierung durch, wenn die gesamte Datei identisch ist. Wenn sich Header (EXIF, ID3,…) oder Metadaten (Eigentümer) unterscheiden, werden sie nicht verknüpft.

Wenn Sie die Möglichkeit haben, ein Dateisystem mit Block-Deduplizierungsunterstützung (ZFS, btrfs, ...) zu verwenden, verwenden Sie dies stattdessen. Ich mag die Offline- Dedup-Unterstützung (auch bekannt als Batch- Dedup-Unterstützung) von btrfs, die die Deduplizierung auf Extent-Ebene unterstützt und nicht ständig viel Speicher verbraucht (wie ZFS-Online-Dedup).

Die Deduplizierung hat auch den Vorteil, dass Dateien vom Benutzer geändert werden können, ohne dass die andere Kopie dies bemerkt (was in Ihrem Fall möglicherweise nicht der Fall ist, in anderen jedoch).

Eine ausgezeichnete Diskussion finden Sie unter https://btrfs.wiki.kernel.org/index.php/Deduplication .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.