AmiGanS
Celnove Produkty Cesky Anglicky Odkazy Ostatni
Created with Amiga!




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.

Grab 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





TOPlist !BLAyEn design! ArtWay