linux에서는 ZIP CLI를 이용해서 데이터 압축이 가능하다. 하지만, 대용량의 경우 시간이 오래 걸릴 수밖에 없다. (1TB의 데이터를 압축하려는 데에 예상시간이 12시간 이상이었던 걸로 기억한다...) 이렇게 하나의 작업 과정이 오래 걸리게 되면, 쉽게 전후 과정을 진행할 수 없을 뿐더러, 잘 압축이 됐는지 테스트하기도 어렵고 프로젝트 스케쥴링하는 것도 쉽지 않다. ㅠ
아무튼 압축하는 것에도 분산처리가 되지 않을까 검색했고, 역시나 있었다!
Pigz는 병렬 압축 도구로, 여러 개의 CPU 코어를 사용하여 파일을 더 빠르게 압축하거나 압축을 해제할 수 있습니다.
Zip 압축은 단일 CPU 코어에서 작동하는 반면, Pigz는 병렬 처리를 사용하여 더 빠른 압축 및 압축 해제를 가능하게 합니다.
먼저, 링크에서 윈도우용 Pigz를 다운로드합니다.
압축을 해제하여 ‘pigz.exe’ 파일을 얻습니다.
pigz.exe가 있는 경로를 환경변수 path로 등록하거나, 윈도우 프롬프트 창을 열어, pigz.exe가 있는 경로로 이동한 상태에서 pigz 명령어를 사용할 수 있습니다.
pigz 설치 확인
pigz -V
MacOS 에서의 설치
brew install pigz
Linux(Ubuntu|Debian)에서의 설치
apt install pigz
pigz 설치 확인
pigz -V
압축하려는 파일이 있는 폴더로 이동한 후, 다음 명령어를 입력합니다.
tar cfp - {압축할 폴더} | pigz -c > {압축 파일 경로, 파일이름}.tar.gz
# ex)
tar cfp - /usr/pigz_test | pigz -c > /root/your_folder/pigz.tar.gz
파일이 성공적으로 압축되면, tar.gz 확장자를 가진 새로운 파일이 생성됩니다. 압축 해제를 원한다면, 다음 명령어를 입력합니다.
# ex)
tar --use-compress-program="pigz -d" -xvf {압축 해제할 파일}
tar --use-compress-program="pigz -d" -xvf /root/your_folder/pigz.tar.gz