|
||||||||||||||||||||||||||||||||||||||||||||||||
Menu
Distributions (131)
Software (10844)
|
Linux v příkazech - archivace a kompreseV tomto díle se seznámíme s příkazy pomocí kterých lze ukládat adresáře a soubory do archivu nebo je komprimovat.
Pojem archivace a kompreseJako archivaci rozumíme uložení kopie dat na jiné místo, nejčastěji pro zálohování dat pro potřebu obnovy v případě zničení či poškození originálních dat. Používá se rovněž pro distribuci. Kompresí pak rozumíme (pro potřeby archivace) bezztrátové zmenšení velikosti dat. Data jsou kompresním programem převedena do komprimovaného tvaru a uložena ve zvláštním souboru. Pro zpřístupnění původních dat je třeba provést opačnou operaci – dekomprimaci dat, která obnoví data do původního souboru. Komprese dat se rovněž používá velmi často, a to jak pro archivaci, tak pro distribuci dat, výrazné zmenšení velikosti dat může být v případě distribuce přes Internet dost rozhodujícím faktorem. Program tarS příkazem tar se asi budete setkávat nejčastěji, používá se jako standardní archivační prostředek pro distribuci programů a zdrojových souborů v Linuxu. Kromě toho s ním úzce spolupracují běžné kompresními programy. Tar slouží k archivaci, k uložení určených souborů do jednoho soubor archivu. Pokud je třeba kupříkladu archivovat celý adresář uživatele bu včetně podadresářů, použije se příkaz: tar -cvf bu.tar /home/bu
V příkladu je použit parametr Výsledkem je soubor bu.tar. Jeho obsah si můžeme vypsat příkazem tar -tf bu.tar
Pokud chceme, aby se současně při archivace provedla i komprese programem
tar -cvzf bu.tar.gz /home/bu
Výsledný archiv je nyní menší a má rozšířenou příponu
Obdobně lze v programu tar provést kompresi pomocí tar -cvjf bu.tar.gz /home/bu
Opačnou operaci, tj. obnovu dat z archivu do původního tvaru, provedeme s
pomocí parametru tar -xvf bu.tar
Pokud nemá archiv příponu jen tar -xvzf bu.tar.gz #obnova souborů komprimovaných s gzip tar -xvzf bu.tgz #to samé, jen je použit zkrácený tvar přípony tar -xvjf bu.tar.bz2 #obnova souborů komprimovaných s bzip2 tar -xvZf bu.tar.Z #to samé pro dříve užívaný compress Tar není jen jediný program, lze jej chápat spíše jako standard (popis taru je součástí POSIX). Nejrozšířenější implementací zejména v GNU/Linux systémech je GNU tar, existují ale i jiné implementace, např. vynikající star, který kromě vyšší rychlosti obsahuje sofistikované filtry pro výběr souborů k archivaci, podporu ACL, automatickou detekci formátu, lepší podporu POSIX standardů apod. Kompresní programy můžeme použít i samostatně, pro kompresi a dekompresi souborů. gzip
Program gzip plan.txt
Výsledkem je soubor
gzip -d plan.txt.gz
#nebo
gunzip plan.txt.gz
Lze provést i společnou kompresi více souborů, popřípadě s parametrem
gzip *.txt #všechny soubory s příponou .txt
Z každého souboru se tímto způsobem vytvoří samostatný komprimovaný soubor s
příponou tar -cvzf bu.tar.gz /home/bu #pomocí parametru z přímo v taru #nebo tar cf - /home/bu | bzip2 > bu.tar.gz #propojením taru a gzipu
Užitečný je parametr gzip -c plan.txt > plan.tgz
Parametrem gzip -l plan.tgz
Velikost výsledného komprimovaného souboru lze ovlivnit pomocí parametru
kompresního poměru s hodnotou
Se soubory komprimovanými pomocí gzip pracuje několik dalších utilit,
například bzip2Soubor bzip2 je novější program pro kompresi souborů. Výsledný soubor je obvykle menší než v případě gzipu, cenou je pak podstatně vyšší časová a paměťová náročnost komprese.
Výsledný soubor má příponu bzip2 plan.txt #komprese bzip2 -d plan.txt.bz2 #dekomprese bunzip2 plan.txt.bz2 #dekomprese
Při používání
Výhodou bzip2 oproti gzipu, kromě určité úspory výsledného souboru, je možnost
obnovy dat i z poškozeného archivu. Díky tomu že bzip2 komprimuje data po
blocích lze poškozený archiv zpracovat pomocí programu
Porovnání
Pro porovnání #archivace bez komprese #doba archivace: 20s, velikost souboru: 188190720 tar -cf linux.tar ./linux-2.6.3-4mdk #standardní komprese s gzip #doba komprese: 1 min 54 s, velikost souboru: 42058686 gzip -c linux.tar > linuxgzipstd.tar.gz #maximální komprese s gzip #doba komprese: 4 min 50s, velikost souboru: 41584712 gzip -c -9 linux.tar > linuxgzip9.tar.gz #minimální komprese s gzip #doba komprese: 1 min 01s, velikost souboru: 52064664 gzip -c -1 linux.tar > linuxgzip1.tar.gz #standardní komprese s bzip2 #doba komprese: 8min 11s, velikost souboru: 33121918 bzip2 -c linux.tar > linuxbz2.tar.bz2 Jak je z porovnání vidět, komprese má velký význam, velikost archivu se zmenšila vždy na méně než čtvtrtinu, další optimalizace pomocí parametru poměru komprese však již další podstatné zmenšení nepřinesla, projevila se ale na značném prodloužení doby komprese. Při porovnání výsledků komprese je třeba také vědět, že některé programy zpracovávající data si provádějí vlastní interní kompresi dat, takže znovu provedená externí komprese již nemá významnější efekt. To se týká například některých formátů obrázků či zvuků (gif, jpg, mp3, apod.) dumpZatímco výše uvedené archivační a kompresní soubory pracovaly na úrovni adresářů a souborů, dump zálohuje data přímo čtením příslušného blokového zařízení. Výhodou je pak vysoká rychlost. Dump je podporován pouze pro ext2/ext3. Archivace celé složky home se provede takto: dump -0f archiv /home Parametr 0 souvisí s pojmem inkrementálního zálohování. Při prvním provádění zálohy zadáme hodnotu 0 a tím se provede plná záloha všech souborů, zatímco při následujících zálohách zadáváme stále se zvyšující pořadového číslo a tím se zálohují jen soubory nově vytvořené nebo modifikované od poslední provedené archivace s nižším pořadovým číslem. To má tu výhodu že opakované archivace mohou být malé a rychlé, na druhé straně si ale musíme udržovat zálohy od pořadového čísla 0 a v případě nutnosti plné obnovy je všechny použít ve správném pořadí.
Parametrem
Jestliže zálohujeme celé souborové systémy, hodí se parametr dump -0uf /dev/st0 /dev/hda5 restore
Pro obnovu souborů z archivu slouží opačný příkaz, restore -tf archiv #vypíše seznam souborů v archivu restore -xf archiv /home #provede obnovu
Restore umožňuje pracovat v interaktivním režimu, kdy po zadání parametru
restore -if archiv add bfu extract quit Jak již bylo uvedeno výše, dump je podporován jen na ext2/ext3, nicméně existuje xfsdump pro XFS souborový systém, a pro další systém lze použít script reiserfsdump, který alespoň simuluje rozhraní dumpu pomocí taru. Zdroje
|
Search Software
Search Google
|
||||||||||||||||||||||||||||||||||||||||||||||
©Pavel Kysilka - 2003-2024 | maillinuxsoft.cz | Design: www.megadesign.cz |