Musíte zkomprimovat diskový obraz, SQL dump, CSV export nebo brutální zálohu před přenosem. xz často snižuje velikost lépe než gzip, ale spotřebovává více CPU a může vyžadovat hodně paměti při vysokých úrovních.
Použijte xz pro jeden velký a málo komprimovaný soubor. Vyhněte se tomu pro JPEG fotografii, MP4 video, .zip archivy, .deb balíčky nebo soubory, jejichž názvy již končí na .gz, .xz nebo .zst.
Níže uvedené kroky pokrývají vytváření .xz archivu, uchovávání původního souboru, testování integrity, volbu úrovně komprese a ověřování vzdálené kopie.

Ověřte, že je xz k dispozici
Většina distribucí instaluje xz ve výchozím nastavení prostřednictvím balíčku xz-utils nebo xz. Zkontrolujte příkaz před jeho začleněním do zálohovací procedury.
xz --version
Na Debianu, Ubuntu a Linux Mint nainstalujte balíček, pokud je příkaz nepřítomný.
sudo apt update
sudo apt install xz-utils
Na Fedoře, AlmaLinuxu nebo Rocky Linuxu nainstalujte balíček pomocí dnf.
sudo dnf install xz
Vyberte xz, gzip nebo zip
xz komprimuje jeden soubor pomocí LZMA2. Je vhodný pro SQL dump, textový export, nekomprimovaný diskový obraz, konsolidovaný log soubor nebo již vytvořený .tar archiv.
- Vyberte xz, když je úspora velikosti důležitější než rychlost.
- Vyberte gzip, když chcete rychlou kompresi ve skriptu, pipeline nebo rotaci logů.
- Vyberte zip, když potřebujete zabalit více souborů do snadno otevíratelného formátu na Windows.
- Vyberte tar před xz, když potřebujete zachovat linuxovou strukturu se svými adresáři, názvy a oprávněními.
xz samo o sobě neslučuje více souborů. Pro kompresi složky nejdříve vytvořte tar archiv a poté jej komprimujte s xz.
tar -cf projekt.tar projekt/
xz -k projekt.tar
Příkaz tar může také přímo vytvořit projet.tar.xz.
tar -cJf projekt.tar.xz projekt/
Zkontrolujte soubor před kompresí
Zkontrolujte typ a velikost souboru před dlouhou kompresí. Již komprimovaný soubor může zabírat procesor při skoro nulovém zisku.
file záloha.sql
ls -lh záloha.sql
Pokud file ukáže gzip compressed data, XZ compressed data, Zip archive data, JPEG image data nebo ISO Media, nejprve otestujte na malém vzorku.
Kompresujte a zachovejte původní soubor
Bez volby xz záloha.sql nahradí záloha.sql s záloha.sql.xz. Přidejte -k pro zachování originálu během kontrol.
xz -k záloha.sql
Přidejte -v pro zobrazení průběhu, poměru a užitečných informací během provádění.
xz -k -v záloha.sql
Poté zkontrolujte, že existují oba soubory a porovnejte jejich velikosti.
ls -lh záloha.sql záloha.sql.xz
Neodstraňujte originál, protože soubor .xz existuje. Otestujte archiv a potvrďte obnovení před jakýmkoli odstraněním.
Vyberte úroveň komprese
Výchozí úroveň pro xz je -6. Často dává dobrý poměr, ale není vždy vhodná pro málo výkonné zařízení nebo pro naléhavé obnovení.
- Použijte
-1na-3, když je rychlost důležitá a maximální zisk není prioritou. - Udržujte
-6pro obecné použití na pohodlném stroji. - Ponechte
-7až-9pro velké soubory, které zřídka archivujete a které budete moci také dekomprimovat na dostatečně vybaveném zařízení.
xz -3 -k export.csv
xz -6 -k záloha.sql
xz -9 -k archiv.img
Vysoké úrovně mohou zvýšit paměť potřebnou k kompresi a dekompresi. Vyhněte se -9 pro archiv, který bude muset být otevřen na malém VPS, starém zařízení nebo minimalizovaném záložním systému.
Omezte využití CPU na serveru
Volba -T stanovuje počet vláken. -T0 používá všechny dostupné jader, což může zpomalit databázi, webový server nebo aktivní kontejnery.
xz -6 -T2 -k záloha.sql
Na produkčním zařízení začněte s -T1 nebo -T2. Sledujte zátěž a zvyšujte pouze v případě, že server zůstává reaktivní.
uptime
top
Pro plánovanou kompresi ji provádějte mimo špičku a před spuštěním zkontrolujte volné místo. Možnost -k uchovává dva soubory a vyžaduje více volného místa na disku.
df -h .
Otestujte integritu archivu
Vždy testujte archiv s xz -t před odstraněním originálu nebo potvrzením zálohy. Příkaz čte a dekomprimuje data do paměti, aniž by vytvářel výstupní soubor.
xz -t záloha.sql.xz
echo $?
Kód návratu 0 znamená, že test xz byl úspěšný. Jiný kód signalizuje chybu a vyžaduje zachování zdrojového souboru.
Pak zobrazte metadata archivu, abyste zkontrolovali nezačleněnou velikost, zkomprimovanou velikost, poměr a typ integrity kontrolování.
xz -l záloha.sql.xz
xz -t ověřuje, že archiv může být čten. Neprokazuje však, že vzdálená kopie je identická s místním souborem.
Ověřte přenos pomocí SHA-256
Vypočtěte otisk SHA-256 před přenosem, zkopírujte archiv a poté znovu vypočtěte otisk na cílovém místě. Obě řádky by měly zobrazit stejnou hodnotu.
sha256sum záloha.sql.xz
scp záloha.sql.xz admin@server:/srv/archives/
ssh admin@server 'sha256sum /srv/archives/záloha.sql.xz'
Uchovávejte otisk spolu s archivem, pokud jde na externí disk, objektové úložiště nebo jiný server.
sha256sum záloha.sql.xz > záloha.sql.xz.sha256
Pro pozdější ověření ze stejného adresáře použijte soubor .sha256.
sha256sum -c záloha.sql.xz.sha256
Dekompresujte, aniž byste ztratili archiv
unxz záloha.sql.xz odstraní archiv po extrakci. Přidejte -k, abyste zachovali soubor .xz, dokud nezkontrolujete obnovený obsah.
unxz -k záloha.sql.xz
ls -lh záloha.sql záloha.sql.xz
Ekvivalentní příkaz s xz je užitečný ve skriptech, které již tento binární soubor volají.
xz -d -k záloha.sql.xz
Pokud cílový soubor již existuje, xz odmítá jeho přepsání bez -f. Nepřinucujte extrakci před porovnáním cesty, data, velikosti a skutečné potřeby nahrazení.
ls -lh záloha.sql záloha.sql.xz
stat záloha.sql
Pro opatrné obnovení dekomprimujte do samostatného adresáře a porovnejte získaný soubor před nahrazením souboru produkce.
mkdir -p /tmp/test-xz
cp záloha.sql.xz /tmp/test-xz/
cd /tmp/test-xz
unxz -k záloha.sql.xz
ls -lh záloha.sql
Číst archiv bez vytváření souboru
Pro rychlé prozkoumání komprimovaného textového souboru pošlete dekomprimovaný obsah na standardní výstup pomocí xzcat. Tato metoda zabraňuje psaní objemového dočasného souboru.
xzcat záloha.sql.xz | head -20
Pro hledání řetězce v komprimovaném textovém souboru použijte xzgrep místo dekomprimace celé archivu.
xzgrep -n "CREATE TABLE" záloha.sql.xz
Tyto příkazy nepoužívejte na důvěrný dump, pokud váš terminál zaznamenává výstup nebo pokud pracujete v sdílené relaci.
Doporučený postup pro zálohu
- Ověřte typ souboru pomocí
filea jeho velikost pomocíls -lh. - Ověřte dostupné místo pomocí
df -h .před použitím-k. - Kompresujte s
xz -k -va s úrovní přizpůsobenou stroji. - Omezte vlákna pomocí
-T1nebo-T2na aktivním serveru. - Otestujte archiv pomocí
xz -ta požádejte o kód návratu0. - Vypočtěte otisk
sha256sumpřed a po každém přenosu. - Otestujte extrakci ve samostatném adresáři před nahrazením důležitého souboru.
xz je užitečný, když je diskový prostor nebo šířka pásma dražší než CPU čas. Nenahrazuje to strategii zálohování, otisk uchovaný s archivem a provedené testování obnovení před incidentem.