1. xz 압축방식이란?
mysql binary 파일을 다운 받으려는
gz 압축이라고 생각했는데 생소하게 xz가 있다.. 이게 뭘까?
xz는 무손실 데이터 압축 프로그램 및 LZMA2 압축 알고리즘 파일 형식이다
XZ는 7-Zip 프로그램의 축소 된 버전으로 간주 할 수 있다
XZ는 입력을 하나의 파일로 압축하는데, 여러 파일을 하나로 압축시키는 옵션은 제공하지 않는다.
그렇기 때문에 보통 Tar (파일 포맷) 또는 CPIO 유닉스 프로그램에 의해 생성된 단일 파일을 압축하는 것이 일반적이다
7-zip이라니까 대충 알겠다. gz보다 좀 더 성능이 개선된 압축방법인 것 같긴한데 불편하면 안쓸거다.
테스트해볼까?
음.. 좀 찾아보니 이거 tar 에서 기본옵션으로 쓸 수 있다.
1) 여기서 잠깐 tar란?
tar 는 여러 파일과 폴더까지 한번에 하나의 파일로 만드는 것으로 데이터를 압축하는 포멧은 아니다.
여기에 뒤에 gz가 붙어야 비로소 압축이 된다
2) tar 주요 옵션 정리
z or J : z는 gzip 사용, J는 xz 사용
c or x : 압축(c) 또는 해제(x). 둘 중 하나만 사용할 수 있다.
v : verbose, 화면에 과정을 출력
f : 이름 지정 옵션, 대부분의 경우에 그냥 사용
p : 권한을 지정해서 아카이브한다. 권한 지정하지 않을 시 실행자의 소유권으로 생성
2. tar.xz 압축하기
tar Jcvf [압축할 파일 이름] ex) tar Jcvf var_log.tar.xz /var/log/ ex) tar Jcvf var_log.txz /var/log/
3. tar.xz 압축풀기
tar Jxvf [압축된 tar.xz 혹은 txz 파일] ex) tar Jxvf var_log.tar.xz ex) tar Jxvf var_log.txz
4. 압축률 테스트
gz < bz < xz 도구 순으로 압축율이 좋다고 한다.
그럼 얼마나 좋은지 실제 테스트 해본다.
1) tar.xz 압축파일
ls -lh -rw-r--r--. 1 root root 834M 2021-02-09 08:58 mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz
2) 압축해제
–tar에서 옵션으로 지원한다. gz는 z, xz는 J 를 쓴다.
[root@localhost backup]# tar -Jxvf mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz mysql-8.0.23-linux-glibc2.12-x86_64/bin/ mysql-8.0.23-linux-glibc2.12-x86_64/bin/myisam_ftdump mysql-8.0.23-linux-glibc2.12-x86_64/bin/myisamchk …. [root@localhost backup]# du -h --max-depth=1 16K ./mvno_backup 1.4G ./mysql-8.0.23-linux-glibc2.12-x86_64
834M -> 1.4G,
–> 압축률 0.58 거의 2배 압축률
3) 기존 gz 압축테스트
[root@localhost backup]# tar -cvzf mysql-8.0.23.tar.gz mysql-8.0.23-linux-glibc2.12-x86_64 [root@localhost backup]# ls -lh -rw-r--r--. 1 root root 895M 2021-02-09 13:34 mysql-8.0.23.tar.gz
895M -> 1.4G,
–> 압축률 0.62 xz가 조금 더 좋긴한데, gz가 완전 구린 정도는 아니다.
4. 결론
사용방법도 tar.gz 압축방식과 같고 압축율은 xz가 더 좋으니까
이제 다른 server에도 압축방식을 xz로 바꿔서
Disk 용량을 줄여보자.
참조 위키백과: https://ko.wikipedia.org/wiki/Xz#cite_note-linuxgazette-1