DirSSCompare
Každý kdo má počítač se jistě setkal s tím, že potřeboval něco někam
zkopírovat nebo přesunout. To jistě každý zvládá, ať již s použitím
samotného systému, nebo s pomocí některého diskového manažeru. Nicméně
málokdo již přemýšlí o tom, jestli vlastně ona kýžená operace proběhla
úspěšně, což není až tak pravidlem. Hlavně při dnešní už vcelku obvyklé
činnosti jakou je vypalování CD (DVD) vyvstává požadavek na kontrolu obsahu
CD po vypálení. Je to sice činnost, která zdržuje, ale hlavně u dat na
kterých vám záleží by se kontrola neměla podceňovat.
Kontrolovat kopírované soubory je možné buď rychle a jednoduše a nebo
pomaleji a důkladně. Pro rychlou kontrolu většinou stačí pouze prohlédnout
obsah cílového adresáře a porovnat ho se zdrojovým jestli oba adresáře
obsahují stejné soubory. Mnohdy stačí pouze zkontrolovat jejich počet,
případně počet přenesených bajtů. Bývá to činnost opravdu pouze
orientační, nicméně tato kontrola ne vždy dostačuje. Mnohdy totiž stačí
jeden špatně přenesený "bajtík" a celý důležitý soubor je znehodnocen.
Proto je nutné mít program, který dokáže vzít ve zdrojovém a cílovém
adresáři soubor po souboru a porovnat ho bajt po bajtu.
Na Amigu existuje takových programu povícero, nicméně většina sice nabízí
spoustu voleb a nastavení, ovšem vše se většinou provádí ze Shellu a pro
někoho, kdo není zrovna v používání příkazového řádku zběhlý to může být
vcelku dost protivná překážka. Proto si dnes ukážeme jeden jednoduchý a i
pro začátečníky "kontrolory" velmi použitelný program.
Jeho název je DirSSCompare, jeho autorem je Krzysztof "ssnake" Olsztynski a
program je šířen pravděpodobně jako freeware. Alespoň jsem žádný požadavek
na platbu v dokumentaci nezaznamenal. Naleznete ho jak jinak než na na
Aminetu. Jak už sám název napovídá, tento program slouží k porovnávání
dvou adresářů, což je celkem optimální například pro onu již tolik
zmiňovanou kontrolu obsahu CD po vypálení. Porovnávány jsou samozřejmě i
vnořené adresáře, neboli adresáře v adresářích. Pokud byste chtěli
porovnávat pouze dva jednotlivé programy, potom s DirSSCompare neuspějete,
ale to není jeho chyba, prostě k tomu není určen. Použití samotného
programu je velmi jednoduché. Po rozbalení archivu stačí spustit program
DirSSCompare, ať už z prostředí okenního systému (pouze je problém, že
program DirSSCompare nemá vlastní ikonu, ale tím se nedejte zaskočit
spustit jde), nebo ze Shellu. Poté vám bude nabídnut souborový requester
kde zvolíte nejprve zdrojový adresář a poté cílový adresář pro kontrolu.
Poté budete dotázáni na vypnutí nebo zapnutí zásobníku (viz dále parametr
-usebuf) Následně budou vypisovány kontrolované soubory a na konec se
zobrazí údaj o čase kontroly. V optimálním případě bude zobrazen pouze
čas. Pokud se některý program liší v cílovém adresáři od toho zdrojového,
bude vypsán i počet chyb. Pokud některý soubor chybí, budete na to
upozorněni. Vzhledem k tomu, že k programu existuje i český lokalizační
katalog, pochopí konečný výsledek snad každý :) Jediné co mi tak trochu
chybí je to, že se ještě nevypisuje počet kontrolovaných souborů, případně
jejich celková velikost, každopádně na počítání souborů tento program není
určen, i když bych tuto věc v další verzi celkem přivítal :).
Nicméně tato metoda kontroly je vhodná pouze pro naprosté začátečníky.
Zkušenější uživatel může DirSSCompare zakomponovat do některého diskového
manažeru (příklad nastavení v Directory Opusu 4 můžete vidět na obrázku) a
nebo ho může spustit ze Shellu. V obou těchto případech lze použít ještě
dva jednoduché parametry, pomocí kterých lze nastavit chování programu.
Jedná se o:
"-usebuf" - na soubory se použije zásobník, v důsledku čehož se zvedne
rychlost porovnávání.
"-quiet" - nebudou vypisovány porovnávané soubory.
U samotného porovnávání je potom nutné pamatovat na to, aby zdrojový
adresář byl vždy ten originalní adresář, ze kterého byla pořizována kopie a
cílový adresář byl ten, který byl kopírován. Je to z toho důvodu, protože
DirSSCompare porovnává adresáře pouze jedním směrem. To znamená, že bere
soubor po souboru ze zdrojového adresáře a porovnává je s patřičnými
soubory v cílovém adresáři. Pokud tedy je v cílovém adresáři víc souborů
než ve zdrojovém, program nenahlásí chybu chybějícího souboru, prostě
proto, že ho vlastně ty ostatní soubory nezajímají a nevidí je. Ovšem při
kopírování celého adresáře se vám těžko stane, že některé soubory
přebývají, někdy spíš chybí a pokud by nebyl dodržen výše popsaný postup
kontroly, mohlo by se stát, že byste na to ani nepřišli.
Protože si myslím, že předchozí odstavec těžko někdo pochopil, popíšu těm
hloubavějším čtenářům, které to ještě neomrzelo malý příklad.
Vytvořte si někde na disku, nebo ještě lépe v Ramdisku adresář s názvem 1.
Nyní do něj nakopírujte dva soubory a nazvete je 1 a 2. Celý tento adresář
zkopírujte někam jinam pod názvem 2. Nyní tedy máte dva zcela shodné
adresáře pod názvem 1 a 2. Pomocí programu DirSSCompare se o shodnosti
adresářů můžete přesvědčit. Pokud jsou shodné, nasimulujeme si maličkou
chybu a to ztrátu jednoho souboru. Smažte tedy v kopírovaném adresáři 2
soubor 1. Nyní máme dva adresáře se zcela zjevně odlišným obsahem co do
počtu souborů. Teď pomocí programu DirSSCompare porovnejte oba adresáře
tak, že jako zdrojový (ten první) zvolíte originální původní adresář 1 a
jako cílový (ten druhý) adresář zkopírovaný 2. DirSSCompare by měl správně
vypsat, že jeden soubor chybí. Nyní oba adresáře porovnejte opačně tak, že
jako zdrojový zvolte adresář 2 a jako cílový adresář 1. A vida, podle
programu je vše v pořádku, i když zjevně není. Jak vidíte, na pořadí
porovnávaných adresářů je třeba si dát pozor, případně je dobré si před
porovnáváním ověřit to, jestli mají oba adresáře stejnou velikost. Nicméně
pokud si to uvědomujete není to takový problém a zrychluje to samotnou
kontrolu souborů. Nakonec v některých případech se dá tato věc i pozitivně
použít.
Pokud se vám bude zdát čekání na porovnávané soubory příliš dlouhé, můžete
program přerušit stiskem klávesy CONTROL a C. Ovšem v některých případech
se mi program při přerušení zasekával. A tím se pomaličku dostáváme k
jedné důležité věci a tou je rychlost programu. Myslím, že tady autor
odvedl skvělou práci, protože program DirSSCompare patří k těm
nejrychlejším, se kterými jsem se na Amize setkal. Na druhou stranu je
třeba si uvědomit, že veškeré soubory jsou porovnávány opravdu pečlivě bajt
po bajtu a autor opravdu nemůže za váš pomalý hardware. Abych vás trochu
popíchnul a možná i přesvědčil o upgrade, přikládám čas s porovnáváním
několika souborů na Pegasosu s G3 na 600 MHz. Alespoň budete mít nějakou
představu o tom, jak rychle to jde a nebo nejde vám.
Jak a na čem se testovalo?
Z hardware byl použit počítač Pegasos s procesorem G3 na 600 MHz a se 128
MB RAM. Použitý hardisk je Caviar od Western Digital s 80 GB a 8 MB cache.
Jako optické mechaniky byl použit CD-Rom Toshiba 48x a CDR Ricoh 24x 8x 4x.
DirSSCompare byl nastaven tak, že byl zapnut zásobník a povoleno vypisování
kontrolních souborů.
Poměrně dlouho jsem přemýšlel, jaké medium zvolit pro testování. Nakonec
zvítězilo CD, které si může sehnat prakticky každý kdo chce a ten samý
pokus si tedy bude moci udělat i sám. Jedná se o CD Amiga Continued 2002.
Sice jde možná o poněkud nestandardní medium, je pouze osmicentimetrové a
jeho velikost je nějakých zhruba 210 MB, ale zdálo se mi zkrátka vhodnější,
než nějaké, co mám jenom já a nikdo další. Jen tak mimochodem, pokud to
nevíte, toto CD obsahuje celých 2656 souborů ve 172 adresářích. Tento údaj
je při porovnávání celkem důležitý, protože čím víc souborů, tím to trvá
déle, protože poměrně dost času se ztrácí jejich načítáním. V praxi to
potom může vypadat tak, že na plném CD na kterém jsou třeba jen dva soubory
(typicky film ve formátu DivX a titulky :) je porovnán se zdrojem z
hardisku zhruba za tři minuty. Ovšem, když jsem si vypaloval zálohu svého
partitonu na kterém mám věci pro internet a tudíž i spoustu souborů (tisíce
e-mailů, soubory cache webového prohlížeče a podobně), trvalo porovnávání
několik hodin!
Ale zpět k našemu příkladu.
Samotné porovnávání jsem dělal tak, že jsem je provedl, poté jsem resetoval
počítač a udělal jsem další tři pokusy. Celkem tedy bylo porovnáváno
čtyřikrát. Moje původní představa byla, že udělám z těchto čtyř pokusů
aritmetický průměr, nicméně rozdíly mezi naměřenými časy mě od toho
odradily. Poměrně přesné byly výsledky u porovnávání pouze na disku. Tady
byl rozdíl maximálně jedné sekundy. Ovšem při porovnávání mezi diskem a CD
a nebo mezi dvěmi CD (to je asi nejčastější možnost při vypalování CD) to
bylo až několik minut! Nejspíš asi záleží, jak se která mechanika zrovna
"vyspí", jak "skousne" CD a podobně. Průměr by tedy možná nebyl to
nejlepší a tak jsem se rozhodl poněkud handicapovat Pegasos a použil jsem
vždy ten nejhorší výsledek. Nuže posuďte sami, jak rychle to nakonec
"Peggy" zvládl:
Harddisk -> Harddisk - 0,36 sekund.
Harddisk -> CD - 4 minuty 20 sekund.
Harddisk -> CDR - 2 minuty 34 sekund.
CD -> CDR - 6 minut 54 sekund.
Ještě jednou bych rád zdůraznil, že to jsou opravdu ty nejhorší časy,
některé lepší jsou lepší i o minuty. Přesný je pouze ten z harddisku na
harddisk.
Co říci závěrem? Snad jen to, že pokud chcete mít opravdu jistotu, je
porovnávání alespoň těch pro vás důležitých souborů nezbytnost. A program
DirSSCompare to pro vás udělá rychle, dobře a levně.
Flegy
|
|
|