Kontakt
Kopie zapasowe

Archiwum tar.gz: tworzenie, podgląd i próbne odtworzenie

Utwórz archiwum z przykładowych plików, sprawdź jego zawartość i odtwórz je do pustego katalogu zamiast nadpisywać dane.

Redakcja NetCloud24Podstawowy4 min czytaniaAktualizacja:

PRZYGOTOWANIE

Czego potrzebujesz

  • Zainstalowane GNU tar, gzip, mktemp i cmp
  • Powłoka Bash z obsługą zmiennych
  • Uprawnienia do zapisu we własnym katalogu domowym

KROK 01

Zbuduj mały zestaw danych

Do ćwiczenia potrzebujemy odizolowanego katalogu z przykładowymi danymi. Polecenie mktemp -d tworzy unikalny katalog tymczasowy, którego ścieżkę zapisujemy w zmiennej PRACOWNIA. Wewnątrz tworzymy dwa podkatalogi: dane (z plikami do archiwizacji) oraz odtworzone (docelowe miejsce na wypakowane archiwum).

Zmienna PRACOWNIA istnieje tylko w bieżącej sesji terminala – jeśli zamkniesz okno, ścieżka zostanie utracona. Dlatego całe ćwiczenie wykonaj w jednej sesji. Na początek umieszczamy w katalogu dane jeden plik tekstowy, który posłuży do weryfikacji poprawności archiwum.

Terminal Bash
PRACOWNIA=$(mktemp -d)
mkdir "$PRACOWNIA/dane" "$PRACOWNIA/odtworzone"
printf "Dokument testowy\n" > "$PRACOWNIA/dane/dokument.txt"

Polecenia tworzą katalog tymczasowy, dwa podkatalogi oraz plik dokument.txt z treścią Dokument testowy. Zmienna PRACOWNIA przechowuje ścieżkę do katalogu tymczasowego.

KROK 02

Spakuj katalog ze ścieżkami względnymi

Opcja -c tworzy archiwum, -z włącza gzip, a -f wskazuje plik wynikowy. Parametr -C ustawia katalog, względem którego tar odczyta podaną nazwę dane. Dzięki temu w archiwum zapisujemy dane/dokument.txt, a nie ścieżkę do katalogu tymczasowego. Czytelna struktura pomaga odtworzyć pliki do wybranego miejsca i sprawdzić, gdzie się pojawią.

Archiwum zapisujemy obok katalogu dane, aby nie próbować umieścić pliku wynikowego wewnątrz niego samego. GNU tar przy typowych ustawieniach usuwa początkowy ukośnik ze ścieżek bezwzględnych, ale lepiej świadomie przygotować strukturę względną przez -C. Samo użycie ścieżek względnych nie zabezpiecza przed nadpisaniem istniejących plików w miejscu rozpakowania. Do próby wykorzystamy pusty katalog.

Terminal Bash
tar -czf "$PRACOWNIA/kopia.tar.gz" -C "$PRACOWNIA" dane

Plik kopia.tar.gz zostanie utworzony w katalogu PRACOWNIA. Zawiera skompresowany katalog dane wraz z plikiem dokument.txt. Ścieżki wewnątrz archiwum są względne, zaczynają się od dane/.

KROK 03

Sprawdź listę plików

Przed wypakowaniem warto sprawdzić, co znajduje się w archiwum. Opcja -t (list) wyświetla zawartość bez rozpakowywania plików. W połączeniu z -v (verbose) zobaczysz dodatkowo uprawnienia, rozmiar, właściciela i czas modyfikacji każdego pliku. Lista pozwala potwierdzić, że archiwum zawiera oczekiwane dane i nie ma w nim przypadkowych ścieżek bezwzględnych.

Lista zawartości pozwala obejrzeć nazwy przed odtworzeniem. Nie stanowi jednak kompletnej kontroli bezpieczeństwa nieznanego archiwum: oprócz nazw znaczenie mają dowiązania, typy plików i zachowanie narzędzia podczas rozpakowywania. Tutaj pracujemy na własnych danych. Obcych archiwów nie rozpakowuj z uprawnieniami administratora ani bezpośrednio do katalogu działającego systemu.

Terminal Bash
tar -tzf "$PRACOWNIA/kopia.tar.gz"

Polecenie wyświetli listę plików w archiwum, na przykład dane/ i dane/dokument.txt. Jeśli użyjesz opcji -v, zobaczysz także uprawnienia, właściciela, rozmiar i datę modyfikacji.

KROK 04

Odtwórz w pustym miejscu

Do wypakowania archiwum używamy opcji -x (extract) z tymi samymi parametrami -z (dla skompresowanego archiwum) i -f (nazwa pliku). Opcja -C wskazuje katalog docelowy – dzięki temu pliki trafiają do odtworzone, a nie do bieżącego katalogu. Ponieważ archiwum zawiera ścieżki względne, plik dokument.txt pojawi się w odtworzone/dane/dokument.txt.

Po wypakowaniu porównujemy oryginalny plik z odtworzonym za pomocą cmp. Jeśli archiwum jest poprawne, cmp zakończy się kodem 0 bez żadnego komunikatu. W ten sposób potwierdzasz, że proces archiwizacji i odtwarzania działa prawidłowo.

Terminal Bash
tar -xzf "$PRACOWNIA/kopia.tar.gz" -C "$PRACOWNIA/odtworzone"
cmp "$PRACOWNIA/dane/dokument.txt" "$PRACOWNIA/odtworzone/dane/dokument.txt"

Po wypakowaniu w katalogu odtworzone pojawi się podkatalog dane z plikiem dokument.txt. Polecenie cmp nie wyświetli komunikatu, jeśli pliki są identyczne – kod wyjścia 0 potwierdza poprawność.

KROK 05

Co ta kopia obejmuje, a czego nie

GNU tar zapisuje treść plików i podstawowe informacje, między innymi tryb dostępu, czas modyfikacji i właściciela. Rozpoznaje też dowiązania twarde pomiędzy archiwizowanymi plikami. Podane polecenie nie włącza zapisu ACL ani rozszerzonych atrybutów. Ich zachowanie wymaga osobnych ustawień i sprawdzenia obu systemów plików. Odtwarzanie właścicieli oraz części metadanych zależy od uprawnień użytkownika.

Archiwizacja otwartych plików bazy danych nie zastępuje spójnej kopii bazy: w trakcie odczytu jej pliki mogą się zmienić. Użyj procedury przeznaczonej dla danego silnika, zamiast zakładać, że samo tar zabezpiecza transakcje. Gzip jest kompresją, nie szyfrowaniem. Osoba mająca dostęp do tar.gz może odczytać jego zawartość; poufne kopie wymagają dodatkowej ochrony i kontroli dostępu.

KROK 06

Przechowywanie i aktualizowanie kopii

Archiwa warto przechowywać poza głównym dyskiem – na osobnym nośniku lub zdalnym serwerze. W nazwie pliku umieszczaj datę utworzenia, na przykład kopia-2026-10-06.tar.gz, co ułatwi zarządzanie wersjami. Nie twórz skryptów czyszczących bez mechanizmu retencji – automatyczne usuwanie starych archiwów powinno uwzględniać politykę przechowywania kopii.

Regularnie sprawdzaj możliwość odtworzenia do osobnego miejsca. Lista plików potwierdza nazwy, natomiast wypakowanie i porównanie testuje treść wybranych danych. W tym ćwiczeniu cmp sprawdza jeden dokument. Przy prawdziwej kopii potrzebujesz też kontroli kompletności, wymaganych uprawnień i działania odtworzonej aplikacji. Zachowaj wynik testu oraz informację, z którego archiwum odtwarzano dane.

Pytania i odpowiedzi

Czy mogę dodać pliki do istniejącego archiwum tar.gz?

Nie bezpośrednio – opcja -r (append) nie działa z kompresją (-z). Musisz najpierw rozpakować archiwum, dodać pliki i spakować ponownie. Alternatywnie możesz użyć tar bez kompresji (tylko .tar), a gzip uruchomić osobno po dodaniu plików.

Dlaczego odtworzone pliki należą do innego użytkownika?

Zwykły użytkownik nie może dowolnie przydzielać właścicieli plików. Dlatego odtworzone dokumenty zwykle należą do osoby, która wykonała rozpakowanie. W tym ćwiczeniu jest to oczekiwane. W kopii systemowej odtwarzanie UID, GID i innych atrybutów należy zaplanować oddzielnie; nie uruchamiaj rozpakowywania jako root tylko po to, aby obejść ten komunikat.

Czy samo tar.gz chroni poufne dane?

Nie. Rozszerzenie .gz informuje o kompresji, a nie o zaszyfrowaniu. Archiwum trzeba przechowywać z odpowiednimi uprawnieniami, a dla danych poufnych zastosować dodatkowe szyfrowanie i bezpiecznie zarządzać kluczem. Kopia na tym samym dysku nie chroni również przed awarią całego nośnika.

Dokumentacja narzędzi

NETCLOUD24

Oprogramowanie do Twojej pracy

Przeglądaj programy do pobrania lub wybierz licencję w naszym sklepie.

Download →Sklep z oprogramowaniem →