Tutoriel Linux

Utwórz archiwum 7z w systemie Linux, gdy ZIP staje się zbyt mały

Débutant3 min de lecture

Zip wystarczy do wymiany kilku dokumentów. Gdy folder staje się zbyt ciężki, gdy trzeba ograniczyć rozmiar pliku lub ukryć zawarte w nim nazwy, format 7z staje się bardziej interesujący. Używałbym go do przygotowania partii do transferu lub archiwizacji kopii roboczej, a nie jako jedynej kopii zapasowej.

Procedura składa się z czterech kontroli: zidentyfikować zainstalowaną komendę, utworzyć archiwum bez usuwania źródeł, odczytać jego zawartość, a następnie przetestować przed usunięciem lub wysłaniem czegokolwiek.

Tux układa foldery w zabezpieczonym archiwum, aby zilustrować tworzenie archiwum 7z w systemie Linux
Archiwum 7z należy zweryfikować przed transferem lub usunięciem plików źródłowych.

Sprawdź komendę i przygotuj folder

Na nowych systemach Debian lub Ubuntu pakiet 7zip zazwyczaj dostarcza 7zz. Starsze instalacje czasami używają p7zip-full i komendy 7z. Zacznij od sprawdzenia, co jest realnie dostępne:

command -v 7zz || command -v 7z
7zz i 2>/dev/null || 7z i

Jeśli żadna komenda nie odpowiada, zainstaluj pakiet odpowiedni dla twojej dystrybucji. W systemach Debian lub Ubuntu zacznij od zaktualizowania indeksu, a następnie zainstaluj 7zip:

sudo apt update
sudo apt install 7zip

Pracuj z katalogu nadrzędnego folderu, który ma być archiwizowany. Unikniesz archiwum wypełnionego ścieżkami absolutnymi i od razu zobaczysz dotyczący wolumin. Sprawdź także dostępne miejsce na docelowym urządzeniu:

du -sh projekt
 df -h .

Utwórz archiwum 7z zachowując źródłowe pliki

Przejdź do folderu, który zawiera projekt, a następnie utwórz archiwum. Komenda a dodaje pliki. Nie usuwa folderu źródłowego, chyba że wyraźnie poprosisz o inne zachowanie.

7zz a backup-projekt.7z projekt/

W przypadku starszej komendy, po prostu zamień 7zz na 7z. Domyślny poziom jest odpowiedni w większości przypadków. Aby priorytetowo potraktować szybkość na już obciążonym serwerze, dodaj -mx=3. Poziom -mx=9 wymaga więcej CPU i nie zawsze wystarczająco zmniejsza rozmiar, aby uzasadnić czekanie.

Aby podzielić archiwum na woluminy po 2 GiB przeznaczone na nośnik lub ograniczoną wysyłkę, użyj -v2g:

7zz a -v2g backup-projekt.7z projekt/

Zachowaj wszystkie pliki .001, .002 i kolejne w tym samym folderze. Pierwszy wolumin służy do testowania i ekstrakcji.

Szyfruj archiwum bez ujawniania hasła

Unikaj -pmotdepasse bezpośrednio w linii poleceń: Bash często rejestruje to w historii, a może to pojawić się na liście procesów. Przekaż -p bez wartości, aby 7-Zip interaktywnie poprosił o tajemnicę. Dodaj -mhe=on, aby zaszyfrować także nazwy plików.

7zz a -p -mhe=on backup-projekt-prywatne.7z projekt/

Zaszyfrowane archiwum nie zastępuje kopii zapasowej. Zgubisz hasło lub klucz do przechowywania, a zawartość stanie się bezużyteczna. W przypadku tajemnic firmowych, utrzymuj politykę szyfrowania i odzyskiwania oddzielną od tej jednorazowej komendy.

Wypisz, przetestuj, a następnie wyodrębnij do kopii

Przed transferem lub oczyszczaniem najpierw sprawdź zawartość. l wypisuje pliki, t sprawdza integralność archiwum. Te dwie komendy pozwalają uniknąć odkrycia niekompletnego archiwum po usunięciu oryginalnego folderu.

7zz l backup-projekt.7z
7zz t backup-projekt.7z

Następnie przetestuj ekstrakcję w pustym katalogu. Zachowaj folder źródłowy nienaruszony do tego etapu:

mkdir -p /tmp/test-7z
7zz x backup-projekt.7z -o/tmp/test-7z
find /tmp/test-7z -maxdepth 2 -type f | head

W przypadku dużego transferu oblicz również podpis archiwum i porównaj go po kopiowaniu:

sha256sum backup-projekt.7z > backup-projekt.7z.sha256
sha256sum -c backup-projekt.7z.sha256

Format 7z służy do pakowania i kompresji. W przypadku regularnej kopii zapasowej z testowanym przywracaniem, potrzebne są także niezależne miejsce docelowe i rotacja. Jeśli musisz po prostu utworzyć lub wyodrębnić standardowe archiwum Unix, podręcznik tar w systemie Linux jest nadal bardziej odpowiedni dla bieżących przepływów.

sudo apt update && sudo apt upgrade