1. 개요

 이 글을 작성하는 이유는 평소와 같이 tar -cvf 압축파일.tar 압축대상 으로 압축을 하는데 용량이 크게되니 자연스럽게 오래걸린다라고 생각만 했었고, htop 을 통해 모니터링을 해보니 단일 코어로 압축을 하고 있는 사실을 확인하고,

"병렬" 멀티쓰레드 압축을 알아보게 되었다.

100%의 의미는 코어당 * 100 을 해서 , 즉  1코어가 풀로 사용 중이라는 뜻이다.

2. 조치

 1) 코드

 

#!/bin/bash

sudo yum install -y pbzip2

# c : 압축
# z : tar 압축 후에 gzip 재압축
# v : verbose 압축 로그 출력
# p : 전체 권한 유지
# f : 지정 파일명으로 압축

tar --use-compress-program=pbzip2 -cvpf #압축_결과파일명 #압축_대상_경로

 2) 응용

  위의 백업을 이용한 프로그램으로, STEP.1 압축한다 → STEP.2 압축 대상 파일을 지정 서버로 업로드한다.

#!/bin/bash
source /etc/bashrc

USER="계정"
# 비밀번호 특수문자 포함시 \ <= 역슬래쉬 치환 필요.
PASS="비밀번호"

BACKUP_SOURCE_FILE="/data/yona.${NOW_DATE}.tar.bz2"

BACKUP_HOST="원격 백업 서버"
BACKUP_PATH="원격 백업 디렉토리"

tar --use-compress-program=pbzip2 -cvpf #백업소스디렉토리/#파일명.${NOW_DATE}.tar.bz2 #압축대상
cd #압축대상

expect <<EOD
set timeout 60
#원격으로 백업 디렉토리 정리
spawn ssh ${USER}@${BACKUP_HOST} 'rm -f /apps/backup/*'
expect "password"
send "${PASS}\n"
#결과 호스트명
expect "was@ki_comm"
EOD

expect <<EOD
set timeout 9999999999999
spawn scp ${BACKUP_SOURCE_FILE} ${USER}@${BACKUP_HOST}:${BACKUP_PATH}
expect "password"
send "${PASS}\n"
#결과 호스트명
expect "was@ki_comm"
EOD
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기