dum | žák

Linux

Název školy Vyšší odborná škola obalové techniky a Střední škola, Štětí, příspěvková organizace
Adresa školky Kostelní 134, 411 08 Štětí
46773509
Název operačního programu OP Vzdělávání pro konkurenceschopnost
Registrační číslo CZ.1.07/1.5.00/34.1006
Označení vzdělávacího materiálu VY_32_INOVACE_21_PSS_416
Název tématické oblasti (sady) Operační systémy
Název materiálu Archivace dat
Anotace Seznamuje s archivací a bezztrátovou kompresí souborů pro účely zálohování dat. Na příkladech ukazuje, jak se vytváří archiv, jak se komprimuje a samozřejmě předkládá i obrácený proces, tj. dekomprese a rozbalení archivu.
Autor Ivan Pomykacz Jazyk český
Očekávaný výstup Vytvoří archiv z několika souborů nebo adresářů. Komprimuje data. Rozbalí archiv a dekomprimuje data. Používá nástroje tar a gzip/gunzip.
Klíčová slova archivace, komprese, dekomprese, gzip, tar
Druh výukového zdroje Výklad Věková skupina žáků 17+
Typ interakce aktivita Ročník 3.
Speciální vzdělávací potřeby žádné
Zhotoveno, (datum/období) 12.5.2014 Celková velikost

pdf icon
Archivace dat

Obsah

Pod archivací souborů si můžeme představit proces, kdy se jeden nebo spíše několik souborů naskládá do jednoho. Výsledný archiv se pak ještě komprimuje, kvůli úspoře místa.

tar

Tvorba archivu

Program tar má poměrně rozsáhlou manuálovou stránku, což poněkud znesnadňuje jeho rychlé zvládnutí. Začněme přepínačem -c, který indikuje vytvoření nového archivu. Následuje -f pro pojmenování výsledného archivu (včetně případné cesty).

tux@wheezy:~$ tar -c -f zaloha.tar /etc/passwd /etc/group
tar: Odstraňuje se úvodní „/„ z názvů prvků
tux@wheezy:~$ ls
zaloha.tar

Příkazem ls se pak můžeme přesvědčit o novém souboru zaloha.tar. Pokud vás zaráží, co se myslí tím, že se odstraňuje úvodní "/", tak to dělá přesně, to co říká. Podívejme se do archivu:

tux@wheezy:~$ tar -t -f zaloha.tar
etc/passwd
etc/group

Přepínačem -t se pouze vypíše obsah archivu. Všimněte si, že u obou souboru chybí lomítko na začátku. Je tak z jediného důvodu a sice, že při rozbalování archivu by hrozilo nechtěné přepsání původních souborů.

Archivace celého adresáře je stejná jako v případě souborů.

tux@wheezy:~$ tar -c -f etc.tar /etc/
tar: Odstraňuje se úvodní „/„ z názvů prvků
tar: /etc/at.deny: Funkce open selhala: Operace zamítnuta
tar: /etc/exim4/passwd.client: Funkce open selhala: Operace zamítnuta
tar: /etc/gshadow-: Funkce open selhala: Operace zamítnuta
tar: /etc/group-: Funkce open selhala: Operace zamítnuta
...
tar: Končí se chybovým kódem, protože byly zaznamenány chyby

Uvedený příklad skončil chybou, protože běžný uživatel nemá práva na čtení všech souborů v /etc. Archiv je ovšem i tak vytvořen, ovšem některé soubory chybí.

Rozbalení archivu

Rozbalení se provádí za účasti parametrů -x a cestě k archivu -f.

tux@wheezy:~$ tar -x -f zaloha.tar
tux@wheezy:~$ ls
etc  etc.tar  zaloha.tar

V našem domovském adresáři přibyl nový adresář etc. Pozor, neplést s /etc, protože tento je v /home/tux/etc a nachází se v něm pouze dva soubory:

tux@wheezy:~$ ls etc
group  passwd

Důležité u rozbalování archivuje, že se rozbalí do umístění, kde se nacházíte. Tzn., pokud bychom chtěli archiv rozbalit jinam, musíme se nejprve příkazem cd do toho umístění dostat.

tux@wheezy:~$ mkdir Temp
tux@wheezy:~$ cd Temp/
tux@wheezy:~/Temp$ tar -x -f /home/tux/zaloha.tar
tux@wheezy:~/Temp$ ls
etc

V tom případě se změní ovšem cesta k souboru -f.

Komprese a dekomprese

Kompresí lze ušetřit hodně místa v závislosti na tom, jaká data komprimujeme. Pokud budeme do archivu umísťovat jpeg obrázky nebo snad mp4 videa, výsledný efekt bude nulový. A to především proto, že obrázky i videa jsou již komprimované, a to ztrátovou kompresí.

Komprese, kterou budeme provádět my, je bezztrátová. Tzn., že naprosto stejná data, která jsme zkomprimovali, obrdžíme i při dekompresi.

Existuje několik kompresních algoritmů lišící se různými parametry. Jsou to např. kompresní poměr, rychlost komprese a dekomprese (která nemusí být nutně symetrická).

gzip

Jedním z rozšířených programů je gzip (GNU Zip). Použijeme jej na již vytvořený archiv zaloha.tar.

tux@wheezy:~$ gzip zaloha.tar
tux@wheezy:~$ ls
etc  etc.tar  Temp  zaloha.tar.gz

Po ukončení program gzip zmizí soubor zaloha.tar a na místo něj tu uvidíme zaloha.tar.gz.

Program gzip neumí komprimovat více souborů najednou, proto se soubory umísťují nejprve do tar.

gunzip

Přesně opačný efekt má program gunzip, který provede dekompresi archivu a podobně jako gzip, odstraní původní komprimovaný soubor a zůstane po něm jen ten dekomprimovaný.

tux@wheezy:~$ gunzip zaloha.tar.gz
tux@wheezy:~$ ls
etc  etc.tar  Temp  zaloha.tar

tar a gzip

Program tar umí pomocí dalšího parametru -z vytvořit rovnou komprimovaný archiv.

tux@wheezy:~$ tar -z -c -f zaloha.tar.gz /etc/passwd /etc/group
tar: Odstraňuje se úvodní „/„ z názvů prvků

bylo je potřeba upravit název souboru -f, aby bylo zřejmé, že jde již o gzip soubor.

Obdobně je na tom i dekomprese a rozbalzení archivu.

tux@wheezy:~$ tar -z -x -f zaloha.tar.gz