Jeśli zachodzi potrzeba zarchiwizowania plików z poziomu konsoli systemu Linux możemy skorzystać z ogólnie dostępnego narzędzia tar. Narzędzie to posiada szereg opcji, które omówimy na przykładach.
Tworzenie nowego archiwum tar.
Załóżmy, że chcemy zarchiwizować katalog o nazwie „dokumenty”. Zrobimy to wydając następujące polecenie:
tar –cvpf backup_dokumenty.tar dokumenty
Czyli składnia przedstawia się następująco:
Wywołanie_programu_tar opcje nazwa_archiwum nazwa_katalogu_do archiwizacji.
Znaczenie opcji użytych powyżej:
–c tworzy nowe archiwum
–v wypisuje nazwy plików
–p zachowuje informacje o prawach dostępu
–f odczytuje/zapisuje dane z/do pliku.
Jeżeli chcemy zarchiwizować cały fs (file system) najlepiej użyć podczas jego archiwizacji tzw. ścieżki bezwzględnej, np. jeżeli chcemy zarchiwizować katalogi /usr oraz /var wydajemy polecenie:
tar /backup_usr_oraz_var.tar ./usr ./var
Aktualizacja (uaktualnienie) archiwum tar.
Jeżeli użytkownik dopisał coś do wybranego pliku, który znajdował się w katalogu „dokumenty:, czy nawet stworzył nowe pliki, możemy te zmiany uwzględnić w naszym archiwum. Posłuży nam do tego opcja –u, która dołącza do istniejącego archiwum pliki nowsze, niż te znajdujące się w archiwum. Wydamy następujące polecenie:
tar –uvpf backup_dokumenty.tar dokumenty
Odtwarzanie z archiwum tar.
Jak zatem można odtworzyć dane z naszego archiwum ???
Służy do tego opcja –x
Użyjemy następującego polecenia:
tar –xvpf backup_dokumenty.tar
Jeżeli nie chcemy wypakowywać archiwum, a tylko podejrzeć pliki w nim się znajdujące to wydamy następujące polecenie:
tar –tvf nazwa_pliku.tar
Jak pobrać pojedynczy plik z archiwum tar ?
Przeglądamy najpierw archiwum powyższym poleceniem, zapamiętujemy nazwę pliku do „wyciągnięcia” i wydajemy polecenie o następującej składni:
tar xvf nazwa_archiwum.tar nazwa_pliku_do_wyciągnięcia
Jeśli archiwum jest dodatkowo skompresowane (o tym za chwilę) to pomoże nam poniższe polecenie:
tar xvfz nazwa_archiwum.tar.gz nazwa_pliku
gzip – kompresja danych.
Aby zmniejszyć rozmiary plików na dysku, często wykonujemy tzw. „kompresję” plików. System Linux również posiada narzędzia, które pozwalają nam na kompresję plików.
1) Aby skompresować plik użyjemy polecenia:
gzip nazwa_pliku_do_kompresji – plik otrzymuje roz. gz
2) Aby rozpakować dane:
gunzip nazwa_pliku_do_rozpakowania
UWAGA !!! Narzędzie to nie pozostawia plików źródłowych, czyli po kompresji usuwa oryginał, po dekompresji usuwa plik, który został właśnie zdekompresowany !
gzip w połączeniu z tar-em.
Już podczas użycia narzędzia tar do archiwizacji możemy „zarządać” kompresowania archiwizowanych plików. Robimy to następująco:
tar cpzf dane_arch_kompresja.tar.gz dane (katalog dane zostanie jednocześnie zarchiwizowany i skompresowany w pliku dane_arch_kompresja.tar.gz)
tar tpzf dane_arch_kompresja.tar.gz (wyświetlenie zawartości skompresowanego archiwum)
tar xpzf dane_arch_kompresja.tar.gz (Wypakowanie i rozkompresowanie archiwum).
zip – kompresja danych.
zip dane1.zip (polecenie kompresuje plik dane1),
zip –r dane_spakowane.zip dane (polecenie kompresujące cały katalog dane do pliku dane_spakowane.zip),
unzip –l dane_spakowane.zip (polecenie listuje zawartość pliku)
unzip dane_spakowane.zip (dekompresja zawartości pliku)
UWAGA !!! Narzędzie to pozostawia pliki źródłowe, czyli po kompresji nie usuwa oryginału, po dekompresji nie usuwa pliku, który został właśnie zdekompresowany ! Może to powodować nadmierne zajmowanie danego fs !!!
ĆWICZENIA – tar i gzip.
1) Stwórz dowolny katalog.
2) W katalogu tym stwórz kilka plików, o dowolnej zawartości.
3) Stwórz archiwum tego katalogu i skompresuj plik.
4) Podejrzyj zawartość archiwum,
5) Dodaj jakieś pliki do katalogu z pkt. 1 i wykonaj ponownie archiwizację katalogu z opcją nadpisania starszych plików archiwum nowszymi.
4) Usuń z dysku katalog, który stworzyłeś w punkcie 1 tego zadania – symulacja utraty tych danych 😉
5) Zdekompresuj, oraz wypakuj pliki, które usunięto, ze stworzonego wcześniej archiwum. Czy odzyskałeś usunięte pliki ?