Nalezeni duplicitnich souboru a jejich nahrazeni hardlinky

Vlada Macek tuttle na sandbox.cz
Pondělí Červenec 14 09:49:13 CEST 2008


Petr Baláš wrote:
> Zdravim
>
> Nema nekdo tip na nejaky program ktery umi projit soubory,
> najit duplicity a tyto nahradit hardlinky?
> Vsechno co jsem zatim nasel fungovalo na par souborech
> ale ja to potrebuji spustit na zalohach dat ktere jiz jsou
> castecne prohardlinkovane (http://www.dirvish.org/)
> a jedna se o cca 1 TB dat coz je cca 1.3 milionu inodes
> coz odhaduji na cca 20 milionu souboru.
>   
Dela mi tezkou hlavu predstava, jak by se do 1.3M inodu nacpalo 20M souboru.

Kazdopadne myslim, ze ani 20M souboru neni mimo kapacitu dnesnich
operacnich pameti => ukol se podle me nemusi resit pomoci odkladaciho
prostoru, napr. databaze.

Proto nevidim duvod, proc by programy, ktere jste zkousel, nemohly tu
vec zvladnout. Tedy za predpokladu, ze nepouzivaji znacne neefektivni
datove struktury. Potrebuji si jen dat pozor na to, ze nektere soubory
uz jsou prolinkovane.

Obvykle takovou vec resim tak, ze si nacitane soubory tridim do
asociativniho pole podle velikosti (prvni a levny znak totoznosti
obsahu). Je treba nepridavat do dane tridy polozku, ktera neni obycejnym
souborem a soubor se stejnym parem devid:inode jako uz nejaky existujici
(hard link "na nej").

V kazde tride se pak udelaji otisky (napr. SHA1). Soubory z totoznym
otiskem se mohou jeste pro jistotu porovnat bajt po bajtu a jsi-li
totozne, prolinkovat a prislusne upravit datovou strukturu.

-- 
\//\/\




Další informace o konferenci Linux