Maneras de deduplicar archivos


9

Quiero simplemente hacer una copia de seguridad y archivar los archivos en varias máquinas. Desafortunadamente, los archivos tienen algunos archivos grandes que son el mismo archivo pero se almacenan de manera diferente en diferentes máquinas. Por ejemplo, puede haber unos pocos cientos de fotos que se copiaron de una computadora a otra como una copia de seguridad ad-hoc. Ahora que quiero hacer un repositorio común de archivos, no quiero varias copias de la misma foto.

Si copio todos estos archivos en un solo directorio, ¿hay alguna herramienta que pueda ir y reconocer archivos duplicados y darme una lista o incluso eliminar uno de los duplicados?


Respuestas:


3

Cree un md5sum de cada archivo, los duplicados de md5sums sugieren (pero no garantiza) los archivos duplicados.


1
ellas hacen fuertemente "sugerir", sin embargo :) .. y si los archivos son del mismo tamaño, la probabilidad de que la sugerencia sea correcta es excepcionalmente alta
warren

2

Usted podría usar Dupemerge para convertir los archivos idénticos en enlaces duros. Tomará un mucho tiempo aunque en un conjunto de archivos de gran tamaño. Los hashes SHA (o MD5) de los archivos seguramente funcionarán más rápido, pero tendrá que hacer más trabajo para encontrar los duplicados. La probabilidad de colisión accidental es tan baja que, en realidad, puede ignorarla. (De hecho, muchos productos de deduplicación ya lo hacen).

Su mejor apuesta para tratar con fotos y música es obtener herramientas adaptadas para encontrar duplicados de esos elementos en particular. Especialmente porque es posible que no tenga archivos que sean idénticos a nivel binario después de que entren en juego elementos como el etiquetado, el recorte o la codificación. Querrá herramientas que puedan encontrar fotos que "se vean" igual y música que "suene" igual, incluso si se han hecho pequeños ajustes a los archivos.


1
hardlink es muy rápido (tomó 200 segundos para archivos de 1.2M, 320GB)
Marcel Waldvogel

1

Bueno, si tiene la capacidad, puede configurar un sistema de archivos de deduplicación y poner sus copias de seguridad en eso. Esto no solo deduplicará archivos completos, sino también partes de archivos similares. Por ejemplo, si tiene el mismo JPEG en varios lugares, pero con diferentes etiquetas EXIF ​​en cada versión, un sistema de archivos de deduplicación solo almacenaría los datos de la imagen una vez.

Los sistemas de archivos de deduplicación incluyen lessfs, ZFS y SDFS.


1
No puedo hablar sobre la deduplicación en SDFS o lessfs, pero Dedupe en ZFS no funciona así. Comprueba en el nivel de bloque, por lo que es probable que los archivos idénticos se marquen para la deduplicación, pero los archivos que tienen un encabezado diferente probablemente no. Además, los archivos más pequeños que su tamaño de registro ZFS (el valor predeterminado es 128 KB) se pueden empaquetar juntos en un solo bloque, por lo que tampoco pueden beneficiarse de la deduplicación.
notpeter

El sistema de archivos deduplicado (zfs o btrfs) solo ahorra espacio en el host de respaldo. No guarda la cantidad de datos transferidos. Es una idea calcular un hash para los archivos y enviarlo a un host de copia de seguridad. cuando dice "Lo tengo", se realiza la copia de seguridad de ese archivo. Esto se implementa en un software de respaldo muy costoso (dinero). Nunca escuché sobre eso en código abierto. Pero tal vez esté implementado en este momento, quién sabe :)
Znik

@Znik rsync --link-dest es tu amigo si quieres ahorrar en lectura / transferencia también. Una simple introducción está aquí: netfuture.ch/2013/08/…
Marcel Waldvogel

está funcionando probando los inodos asignados a un archivo. pero cuando la deduplicación está oculta, por ejemplo, en el sistema de archivos squashfs, rsync no puede verificar esto y transferirá los mismos datos muchas veces.
Znik

0

Cuando estaba haciendo este tipo de cosas, aprendí que es mucho más atractivo / eficiente en el tiempo que en realidad solo revisas los archivos en tu tiempo libre, en el transcurso de un par de semanas. Puedes ver la diferencia entre las cosas mucho mejor que tu computadora.

Si no estás de acuerdo, entonces te sugiero EasyDuplicateFinder . Sin embargo, como mencioné anteriormente, tomará mucho tiempo, digamos, aproximadamente un día para 5GB de archivos.

Y en otra nota, Crashplan hace lo que estabas haciendo antes, pero de una manera mucho más organizada, sin problemas de versiones.


0

Otra posibilidad, suponiendo que las máquinas de las que está haciendo copias de respaldo lo respalden, es usar algo como rsync.

Si tu rsync de A a B, luego de C a B, luego de D a B, etc. exacto Se eliminarán los duplicados (es decir, por nombre de archivo) (y se sincronizarán entre las máquinas de las que está realizando una copia de seguridad).

Sin embargo, si no quiere que todos estén sincronizados entre sí, esta no es la mejor manera de hacerlo.


0

Para archivos de imagen, use encontrarimagedupes . También está empaquetado en debian .


findimagedupes es para fotos o gráficos, tal vez convertidos de un formato a otro. Las fotos (i home) son solo un ejemplo en cuestión. Puede ser cualquier otro archivo grande.
Znik

0

Los enlaces físicos solo realizan la deduplicación si todo el archivo es idéntico. Si los encabezados (EXIF, ID3,…) o los metadatos (propietario) difieren, no se vincularán.

Cuando tenga la posibilidad de usar un sistema de archivos con soporte de deduplicación de bloques (ZFS, btrfs, ...) use eso en su lugar. Soy muy aficionado a la desconectado (alias lote ) el soporte de dedup de btrfs, que admite la deduplicación de nivel de extensión y no consume constantemente enormes cantidades de memoria (como deduplicación en línea de ZFS).

La deduplicación también tiene la ventaja de que los archivos pueden ser modificados por el usuario sin que la otra copia se dé cuenta (lo que podría no ser aplicable en su caso, pero en otros).

Ver https://btrfs.wiki.kernel.org/index.php/Deduplication para una excelente discusión.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.