deduplikáció eszközt keresek

Fórumok

Volt itt korábban egy fórum témában ötletelés. Akkor ki is próbáltam valamelyik eszközt, működött is többé-kevésbé. Viszont most megint kellene, és nem találom a témát, nem emlékszem az eszköz nevére.

Egyszerű a problémám: Volt több laptopom, céges gépek, magán gépek, asszonynak laptopjai, telefonok, fényképezőgépek. Készítettem biztonsági mentéseket minden gépről, telefonról, memória kártyáról. Most az a helyzet, hogy van egy 6T méretű lemez teli, és tudom, hogy vannak rajta olyan fájlok, amik mondjuk 4-5 példányban is léteznek, mert a régi céges laptopomon is rajta volt, amikor mentést készítettem, az új céges laptop mentésében is benne van, meg a magán laptop mentésében is. Stb.

Első sorban kilistázni szeretném azokat a fájlokat, amik több példányban megvannak. Eddig ilyen megoldást használtam, aztán kézzel vagy töröltem valahonnan (pl. ez a régi backup nem kell már), vagy hardlinket készítettem, ha mindkét helyen meg akarom tartani valamiért. Mondjuk fotók egy helyen ömlesztve, egy másik helyen könyvtárakba válogatva valami szerint.

Ha a tool a lista generáláson kívül esetleg lehetőséget ad automatikus hardlink generálásra, annak örülnék. Így a fájlok mindenhol megmaradnának (néhol feleslegesen), de a tárhely felszabadulna.

A környezet: Debian GNU/Linux stable, ext4

Hozzászólások

Szerkesztve: 2020. 11. 27., p - 11:13

Szia!

Én az fslint csomagot használom erre. Python2 függősége van, Debian tárolóban elviekben benne van még.

Ha külön kell telepíteni (Ubuntu 20.04-ben már nincs benne), akkor ez alapján megpróbálhatod:

mkdir -p ~/Downloads/fslint
cd ~/Downloads/fslint
wget http://archive.ubuntu.com/ubuntu/pool/universe/p/pygtk/python-gtk2_2.24.0-6_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/p/pygtk/python-glade2_2.24.0-6_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/f/fslint/fslint_2.46-1_all.deb

sudo apt-get install ./*.deb

Ubuntu 20.10 esetén pedig az alábbiak szerint:

mkdir -p ~/Downloads/fslint
cd ~/Downloads/fslint
wget http://archive.ubuntu.com/ubuntu/pool/main/libf/libffi/libffi7_3.3-4_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/p/pygobject-2/python-gobject-2_2.28.6-14ubuntu1_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/p/pycairo/python-cairo_1.16.2-2ubuntu2_amd64.deb

wget http://archive.ubuntu.com/ubuntu/pool/universe/p/pygtk/python-gtk2_2.24.0-6_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/p/pygtk/python-glade2_2.24.0-6_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/f/fslint/fslint_2.46-1_all.deb

sudo apt-get install ./*.deb

 GitHub: https://github.com/pixelb/fslint

Lauchpad: https://launchpad.net/ubuntu/+source/fslint/2.46-1

https://hup.hu/node/78798

Nezd at elotte, esszel hasznald! Sszerintem nagyjabol jo, legalabbis anno ment, de ha nagyon hulye fileneveid vannak, akkor lehet olyan eset, amit nem jol kezel le.

When you tear out a man's tongue, you are not proving him a liar, you're only telling the world that you fear what he might say. -George R.R. Martin

Első sorban kilistázni szeretném azokat a fájlokat, amik több példányban megvannak
 

find -- "$ROOTDIR" -type f -print0 \
| xargs -0 -r -- md5sum -- \
| sort \
| uniq --check-chars=32 --all-repeated=separate

(Mielőtt valaki elkezdi kongatni a vészharangot az md5sum miatt: erre e célra továbbra is tökéletesen megfelel. Ha valakinek nem tetszik, tőlem írhat helyette sha256sum-ot is, csak akkor a uniq-nál is át kell írni a 32-t 64-re.)

Szerkesztve: 2020. 11. 27., p - 17:58

Én írtam egy ilyen programot, JavaFX kell hozzá, és működik: https://rizsi.com/programs/rdupes/0.0.3/

A pláne az benne, hogy ahogy dolgozol, nyomon követi ami történik, és folyamatos a visszajelzés ahogy haladsz a deduplikációbal. A backup készítésben is segít, meg tudod nézni, hogy egy folderből minden megvan-e a backupban.

Leírás: https://github.com/rizsi/rdupes#get-rid-of-duplicates-in-a-folder---for…

Alapból egyszerű probléma, az benne a nehéz, hogy valóban használható legyen. Például én azt akartam hogy ne csak egy listát adjon a duplikátumokból, hanem egy munkafolyamatot támogasson, ahogy elképzeltem, hogy deduplikálom a fényképek kuplerájhalmát. Ráadásul úgy, hogy van egy inicializálás fázis, amikor nem kell ott ülni, és munka közben gyorsan reagáljon, ne kelljen várni a gépre lehetőleg. Ehhez elég komplex adatszerkezet kellett, amit a legtöbb ilyen eszköz IMHO nem tud. Pont annyit írtam meg az elképzelt funkciókból, ami magamnak kellett a saját célomra. Persze még van jópár ötletem, de egy ideig tuti nem nyúlok hozzá.

Total commander -> fájl keresés -> azonos fájlok keresése

jdupes (1)? Nem tudom, ekkora adatmennyiséget mennyi idő alatt néz át, mindenesetre tud linkelni is.

igaz meg "beta", de a proxmox backup server tud fajl szintu backupolast, es kozben deduplikaciot is kezeli. (gondolom X meretu chunkokra szedi a fajlokat, es checksum alapjan talalja meg a hasonlokat)

A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

Szerkesztve: 2020. 11. 29., v - 13:58

Sziasztok, köszi a válaszokat!

A gépet átnézve megtaláltam, hogy az rdfind van telepítve, bizonyára ezt használtam a múltkor. Megnéztem, jónak tűnik. Most fut.

szerk: kb. másfél-két nap alatt végzett. Egész jó, egy dolog nem tetszik, hogy csak a fájlok tartalmának az egyezését nézi, a fájlnevet nem.

Így egy csomó olyan rövid (pár byte méretű) fájl van, ami ugyanazt tartalmazza, de valójában teljesen különböző dolgokban teljesen különböző szerepet töltenek be. Se törölni nem lenne ezeket jó, se hardlinkkel egymástól függővé tenni. Szóval hiába van opció arra, hogy automatikusan töröljön vagy hardlinkeljen, ezt biztos, hogy nem fogom használni.

Ugyanakkor olyan szempontból jó ez, hogy pl. véletlenül többször letöltött fájlokat akármi.mkv akármi (1).mkv megtalál és egymás mellett megmutat, így a találatok kézi végigbogarászása során ezeket ki lehet irtani.

disclaimer: ha valamit beidéztem és alá írtam valamit, akkor a válaszom a beidézett szövegre vonatkozik és nem mindenféle más, random dolgokra.

Igen is meg nem is.

Ha van egy egy bájtos fájlom, amit két helyre felmásoltam, meg egy másik egy bájtos fájl, aminek a tartalma ugyanaz, de mondjuk valami teljesen más program konfigurációját tartalmazza, akkor vagy mindhármat egyszerre kezeli az automata vagy mindhármat egyszerre hagyja figyelmen kívül.

Nekem meg ugye az kellett volna, hogy az első kettőt vegye észre, a harmadikat meg hagyja figyelmen kívül.

De igazság szerint nem érdekel annyira, hogy túl sokat vesződjek ezzel. Még ha a nevet is figyelembevenné, akkor is lehetne egy halom tévedés, mert mondjuk valami buta egyszerű néven simán találhatna véletlenül egyező fájlokat. Nincs azzal bajom, hogy kézzel kell átnézzem a találatokat, csak meglepődtem, hogy a nevet nem figyeli. Ennyi. Mivel az eredmények méret szerint sorba vannak rendezve, a nagyobb fájloknák kezdem az irtást, aztán amikor már egy-egy fájllal már csak kicsi a nyereség, akkor abbahagyom a nézelődést. Nem muszáj, hogy tökéletes legyen az eredmény, az rdfind szerint 1T területet fel lehetne szabadítani. Bőven elég nekem, ha 80%-át sikerül (de ha csak a felét, azzal is együtt tudok élni).

disclaimer: ha valamit beidéztem és alá írtam valamit, akkor a válaszom a beidézett szövegre vonatkozik és nem mindenféle más, random dolgokra.

BackupPC tud ilyet és figyelembe veszi a duplikációt backup során.