전송 전에 디스크 이미지, SQL 덤프, CSV 내보내기 또는 원본 백업을 압축해야 합니다. xz는 종종 gzip보다 더 나은 크기 감소를 제공하지만 더 많은 CPU를 소모하며 높은 수준에서는 많은 메모리를 요구할 수 있습니다.
단일 파일, 대용량 및 압축이 적은 경우 xz를 사용하십시오. JPEG 사진, MP4 비디오, .zip 아카이브, .deb 패키지 또는 이미 .gz, .xz 또는 .zst로 끝나는 파일에는 사용하지 마십시오.
아래 단계에서는 .xz 아카이브 생성, 소스 파일 보존, 무결성 테스트, 압축 수준 선택 및 원격 복사 확인을 다룹니다.

xz 사용 가능 여부 확인
대부분의 배포판은 xz-utils 또는 xz 패키지를 통해 기본적으로 xz를 설치합니다. 백업 프로세스에 통합하기 전에 명령어를 확인하십시오.
xz --version
Debian, Ubuntu 및 Linux Mint에서는 명령어가 없으면 패키지를 설치하십시오.
sudo apt update
sudo apt install xz-utils
Fedora, AlmaLinux 또는 Rocky Linux에서는 dnf를 사용하여 패키지를 설치합니다.
sudo dnf install xz
xz, gzip 또는 zip 선택
xz는 LZMA2로 단일 파일을 압축합니다. SQL 덤프, 텍스트 내보내기, 압축되지 않은 디스크 이미지, 통합된 로그 파일 또는 이미 생성된 .tar 아카이브에 적합합니다.
- xz를 선택하십시오. 크기 절감이 속도보다 더 중요할 때.
- gzip을 선택하십시오. 스크립트, 파이프라인 또는 로그 로테이션에서 빠른 압축이 필요할 때.
- zip을 선택하십시오. Windows에서 쉽게 열 수 있는 형식으로 여러 파일을 함께 묶어야 할 때.
- tar를 xz보다 먼저 선택하십시오. Linux 아카이브 구조, 디렉토리, 이름 및 권한을 보존해야 할 때.
xz는 여러 파일을 묶지 않습니다. 폴더를 압축하려면 먼저 tar 아카이브를 생성한 후 xz로 압축하십시오.
tar -cf projet.tar projet/
xz -k projet.tar
tar 명령어는 projet.tar.xz를 직접 생성할 수도 있습니다.
tar -cJf projet.tar.xz projet/
압축 전에 파일 확인
긴 압축 전에 파일의 종류와 크기를 확인하십시오. 이미 압축된 파일은 거의 이득 없이 프로세서 자원을 차지할 수 있습니다.
file sauvegarde.sql
ls -lh sauvegarde.sql
만약 file가 gzip compressed data, XZ compressed data, Zip archive data, JPEG image data 또는 ISO Media라고 나타나면, 먼저 작은 샘플에서 테스트하십시오.
소스 파일 유지하며 압축하기
옵션 없이 xz sauvegarde.sql는 sauvegarde.sql를 sauvegarde.sql.xz로 대체합니다. -k를 추가하여 검사를 수행하는 동안 원본을 보존하십시오.
xz -k sauvegarde.sql
진행률, 비율 및 유용한 정보를 표시하려면 -v를 추가하십시오.
xz -k -v sauvegarde.sql
그런 다음 두 파일이 모두 존재하는지 확인하고 크기를 비교하십시오.
ls -lh sauvegarde.sql sauvegarde.sql.xz
원본이 존재한다고 해서 .xz 파일을 삭제하지 마십시오. 아카이브를 테스트하고 삭제하기 전에 복원 가능성을 검증하십시오.
압축 수준 선택하기
xz의 기본 수준은 -6입니다. 이것은 종종 좋은 비율을 제공하지만, 항상 성능이 낮은 기계나 긴급 복원에 적합하지는 않습니다.
-1에서-3까지 사용하십시오. 속도가 중요하고 최대 이득이 우선이 아닐 때.- 편안한 기계에서 일반 사용을 위해
-6를 유지하십시오. -7에서-9까지는 잘 아카이브하지 않는 대용량 파일에 예약합니다. 이 파일은 충분한 장비에서 압축 해제가 가능할 수도 있습니다.
xz -3 -k export.csv
xz -6 -k sauvegarde.sql
xz -9 -k archive.img
높은 수준은 압축 및 압축 해제에 필요한 메모리를 증가시킬 수 있습니다. 작은 VPS, 구형 기계 또는 최소한의 백업 시스템에서 열어야 하는 아카이브에 -9를 피하십시오.
서버의 CPU 사용 제한하기
-T 옵션은 스레드 수를 조정합니다. -T0는 사용 가능한 모든 코어를 사용하여 데이터베이스, 웹 서버 또는 활성 컨테이너를 느리게 할 수 있습니다.
xz -6 -T2 -k sauvegarde.sql
생산 환경에서는 -T1 또는 -T2로 시작하십시오. 부하를 모니터링한 후 서버가 반응성이 유지되면 그렇게 하십시오.
uptime
top
계획된 압축을 위해 피크 시간이 아닐 때 실행하고 실행 전에 여유 공간을 확인하십시오. -k 옵션은 두 개의 파일을 유지하고 더 많은 디스크 공간을 요구합니다.
df -h .
아카이브의 무결성 테스트
원본 파일을 삭제하거나 백업을 검증하기 전에 항상 xz -t로 아카이브를 테스트하십시오. 이 명령어는 파일을 생성하지 않고 메모리에서 데이터를 읽고 압축 해제합니다.
xz -t sauvegarde.sql.xz
echo $?
반환 코드 0은 xz 테스트가 성공했음을 나타냅니다. 다른 코드는 오류를 나타내며 소스 파일을 유지해야 합니다.
그런 다음 아카이브의 메타데이터를 표시하여 압축해제되지 않은 크기, 압축 크기, 비율 및 무결성 검증 유형을 확인하십시오.
xz -l sauvegarde.sql.xz
xz -t는 아카이브를 읽을 수 있는지 확인합니다. 원격 복사본이 로컬 파일과 동일하다고 보장하지는 않습니다.
SHA-256으로 전송 확인
전송 전에 SHA-256 해시를 계산하고, 아카이브를 복사한 후 대상에서 해시를 다시 계산합니다. 두 줄은 동일한 값을 표시해야 합니다.
sha256sum sauvegarde.sql.xz
scp sauvegarde.sql.xz admin@serveur:/srv/archives/
ssh admin@serveur 'sha256sum /srv/archives/sauvegarde.sql.xz'
메모리로 아카이브가 이동할 경우 기록을 보관하십시오.
sha256sum sauvegarde.sql.xz > sauvegarde.sql.xz.sha256
나중에 같은 폴더에서 확인하려면 .sha256 파일을 사용하십시오.
sha256sum -c sauvegarde.sql.xz.sha256
아카이브를 잃지 않고 압축 해제하기
unxz sauvegarde.sql.xz는 추출 후 아카이브를 삭제합니다. -k를 추가하여 복원된 내용을 확인할 때까지 .xz 파일을 유지하십시오.
unxz -k sauvegarde.sql.xz
ls -lh sauvegarde.sql sauvegarde.sql.xz
xz와의 동등한 명령은 이미 이 이진 파일을 호출하는 스크립트에서 유용합니다.
xz -d -k sauvegarde.sql.xz
출력 파일이 이미 존재하면 xz는 -f 없이 덮어쓰기 거부합니다. 경로, 날짜, 크기 및 실제 교체 필요성을 비교하기 전에 압축 해제를 강요하지 마십시오.
ls -lh sauvegarde.sql sauvegarde.sql.xz
stat sauvegarde.sql
신중한 복원을 위해 별도의 폴더에 압축 해제하고 생성된 파일을 비교하여 프로덕션 파일을 교체하십시오.
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
파일을 생성하지 않고 아카이브 읽기
압축된 텍스트 파일을 신속하게 검사하기 위해 xzcat로 압축 해제된 내용을 표준 출력으로 보냅니다. 이 방법은 대용량 임시 파일을 작성하지 않도록 합니다.
xzcat sauvegarde.sql.xz | head -20
압축된 텍스트 파일에서 문자열을 검색하려면 전체 아카이브를 압축 해제하는 대신 xzgrep을 사용하십시오.
xzgrep -n "CREATE TABLE" sauvegarde.sql.xz
터미널이 출력을 기록하거나 공유 세션에서 작업 중인 경우 기밀 덤프에 대해 이러한 명령을 사용하지 마십시오.
백업을 위한 권장 절차
file로 파일 종류를 확인하고ls -lh로 파일 크기를 확인하십시오.-k를 사용하기 전에df -h .로 사용 가능한 공간을 확인하십시오.xz -k -v로 적절한 머신에서 압축하십시오.- 활성 서버에서
-T1또는-T2로 스레드를 제한하십시오. xz -t로 아카이브를 테스트하고 반환 코드0을 요구하십시오.- 전송 전후에
sha256sum해시를 계산하십시오. - 중요 파일을 교체하기 전에 별도의 폴더에서 추출을 테스트하십시오.
xz는 디스크 공간이나 대역폭이 CPU 시간보다 비쌀 때 유용합니다. 백업 전략을 대체하지 않고 아카이브와 함께 보존된 해시 및 사고 발생 전에 수행된 복원 테스트를 포함합니다.