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í | ||
IČ | 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 |
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