Você deve compactar uma imagem de disco, um dump SQL, uma exportação CSV ou um backup bruto antes da transferência. xz geralmente reduz melhor o tamanho do que gzip, mas consome mais CPU e pode exigir muita memória com níveis altos.
Use xz para um único arquivo grande e pouco compactado. Evite-o para uma foto JPEG, um vídeo MP4, um arquivo .zip, um pacote .deb ou um arquivo que já termina com .gz, .xz ou .zst.
As etapas abaixo abrangem a criação de um arquivo .xz, a preservação do arquivo fonte, o teste de integridade, a escolha do nível de compressão e a verificação de uma cópia remota.

Verifique se xz está disponível
A maioria das distribuições instala xz por padrão através do pacote xz-utils ou xz. Verifique o comando antes de integrá-lo a um procedimento de backup.
xz --version
No Debian, Ubuntu e Linux Mint, instale o pacote se o comando estiver ausente.
sudo apt update
sudo apt install xz-utils
No Fedora, AlmaLinux ou Rocky Linux, instale o pacote com dnf.
sudo dnf install xz
Escolher xz, gzip ou zip
xz compacta um único arquivo com LZMA2. Ele é adequado para um dump SQL, uma exportação de texto, uma imagem de disco não compactada, um arquivo de log consolidado ou um arquivo .tar já criado.
- Escolha xz quando a redução de tamanho for mais importante que a velocidade.
- Escolha gzip quando quiser uma compressão rápida em um script, pipeline ou rotação de logs.
- Escolha zip quando precisar agrupar vários arquivos em um formato fácil de abrir no Windows.
- Escolha tar antes de xz quando precisar preservar uma estrutura Linux com seus diretórios, nomes e permissões.
xz sozinho não agrupa vários arquivos. Para compactar uma pasta, primeiro crie um arquivo tar e depois compacte-o com xz.
tar -cf projeto.tar projeto/
xz -k projeto.tar
O comando tar também pode criar diretamente projeto.tar.xz.
tar -cJf projeto.tar.xz projeto/
Controlar o arquivo antes da compressão
Verifique o tipo e o tamanho do arquivo antes de uma compressão longa. Um arquivo já compactado pode monopolizar o processador para um ganho quase nulo.
file sauvegarde.sql
ls -lh sauvegarde.sql
Se file indicar gzip compressed data, XZ compressed data, Zip archive data, JPEG image data ou ISO Media, teste primeiro em uma pequena amostra.
Compactar mantendo o arquivo fonte
Sem opção, xz sauvegarde.sql substitui sauvegarde.sql por sauvegarde.sql.xz. Adicione -k para preservar o original durante os testes.
xz -k sauvegarde.sql
Adicione -v para mostrar o progresso, a taxa e informações úteis durante a execução.
xz -k -v sauvegarde.sql
Verifique então se os dois arquivos existem e compare seu tamanho.
ls -lh sauvegarde.sql sauvegarde.sql.xz
Não exclua o original porque o arquivo .xz existe. Teste o arquivo e valide a restauração antes de qualquer exclusão.
Escolher um nível de compressão
O nível padrão de xz é -6. Ele geralmente oferece uma boa taxa, mas nem sempre é adequado para uma máquina pouco poderosa ou para uma restauração urgente.
- Use
-1a-3quando a velocidade contar e o ganho máximo não for prioritário. - Mantenha
-6para uso geral em uma máquina confortável. - Reserve
-7a-9para arquivos grandes que você archive raramente e que também possam ser descompactados em uma máquina suficientemente equipada.
xz -3 -k export.csv
xz -6 -k sauvegarde.sql
xz -9 -k archive.img
Níveis altos podem aumentar a memória necessária para a compressão e descompressão. Evite -9 para um arquivo que deverá ser aberto em um pequeno VPS, uma máquina antiga ou um sistema de recuperação mínimo.
Limitar o uso de CPU em um servidor
A opção -T define o número de threads. -T0 usa todos os núcleos disponíveis, o que pode desacelerar um banco de dados, um servidor web ou contêineres ativos.
xz -6 -T2 -k sauvegarde.sql
Em uma máquina de produção, comece com -T1 ou -T2. Monitore a carga e aumente apenas se o servidor continuar responsivo.
uptime
top
Para uma compressão planejada, execute fora do horário de pico e verifique o espaço livre antes do lançamento. A opção -k mantém dois arquivos e requer mais espaço em disco.
df -h .
Testar a integridade do arquivo
Teste sempre o arquivo com xz -t antes de excluir o original ou validar um backup. O comando lê e descompacta os dados na memória, sem criar um arquivo de saída.
xz -t sauvegarde.sql.xz
echo $?
Um código de retorno 0 indica que o teste xz foi bem-sucedido. Outro código sinaliza um erro e impõe a preservação do arquivo fonte.
Em seguida, exiba os metadados do arquivo para verificar o tamanho não compactado, o tamanho compactado, a taxa e o tipo de controle de integridade.
xz -l sauvegarde.sql.xz
xz -t verifica se o arquivo pode ser lido. Ele não prova que uma cópia remota é idêntica ao arquivo local.
Verificar uma transferência com SHA-256
Calcule uma impressão SHA-256 antes da transferência, copie o arquivo, e depois recalcule a impressão no destino. As duas linhas devem exibir o mesmo valor.
sha256sum sauvegarde.sql.xz
scp sauvegarde.sql.xz admin@servidor:/srv/archives/
ssh admin@servidor 'sha256sum /srv/archives/sauvegarde.sql.xz'
Mantenha a impressão com o arquivo se ele for enviado para um disco externo, armazenamento de objetos ou outro servidor.
sha256sum sauvegarde.sql.xz > sauvegarde.sql.xz.sha256
Para verificar mais tarde a partir da mesma pasta, use o arquivo .sha256.
sha256sum -c sauvegarde.sql.xz.sha256
Descompactar sem perder o arquivo
unxz sauvegarde.sql.xz exclui o arquivo após a extração. Adicione -k para manter o arquivo .xz enquanto você não tiver verificado o conteúdo restaurado.
unxz -k sauvegarde.sql.xz
ls -lh sauvegarde.sql sauvegarde.sql.xz
O comando equivalente com xz é útil em scripts que já chamam esse binário.
xz -d -k sauvegarde.sql.xz
Se o arquivo de saída já existir, xz se recusa a sobrescrevê-lo sem -f. Não force a extração antes de ter comparado o caminho, a data, o tamanho e a real necessidade de substituição.
ls -lh sauvegarde.sql sauvegarde.sql.xz
stat sauvegarde.sql
Para uma restauração cuidadosa, descompacte em uma pasta separada e compare o arquivo obtido antes de substituir um arquivo de produção.
mkdir -p /tmp/test-xz
cp sauvegarde.sql.xz /tmp/test-xz/
cd /tmp/test-xz
unxz -k sauvegarde.sql.xz
ls -lh sauvegarde.sql
Ler um arquivo sem criar um arquivo
Para inspecionar rapidamente um arquivo de texto compactado, envie o conteúdo descompactado para a saída padrão com xzcat. Esse método evita escrever um arquivo temporário grande.
xzcat sauvegarde.sql.xz | head -20
Para procurar uma string em um arquivo de texto compactado, use xzgrep em vez de descompactar todo o arquivo.
xzgrep -n "CREATE TABLE" sauvegarde.sql.xz
Não use esses comandos em um dump confidencial se seu terminal registrar a saída ou se você estiver trabalhando em uma sessão compartilhada.
Procedimento recomendado para um backup
- Verifique o tipo do arquivo com
filee seu tamanho comls -lh. - Verifique o espaço disponível com
df -h .antes de usar-k. - Comprime com
xz -k -ve um nível adequado à máquina. - Limite as threads com
-T1ou-T2em um servidor ativo. - Teste o arquivo com
xz -te exija um código de retorno0. - Calcule uma impressão
sha256sumantes e depois de cada transferência. - Teste a extração em uma pasta separada antes de substituir um arquivo importante.
xz é útil quando o espaço em disco ou a largura de banda custam mais caro do que o tempo de CPU. Não substitui uma estratégia de backup, uma impressão mantida com o arquivo e um teste de restauração realizado antes de um incidente.