Friday, April 13, 2018

CentOS 6.6 리눅스 관리] 11.4 아카이브, 압축 및 백업/복구 - gzip, bzip2 명령


안녕하세요. 썬구루입니다. 이 게시물에서는 압축 명령인 comnpress, gzip과 bzip2 명령에 대해 알아보도록 하겠습니다. 만약 서비스에는 사용되지 않지만 파일들을 서버에 장기간 보관해야 한다면 어떻게 해야 할까요? 또는 파일을 네트워크를 통해 다른 컴퓨터로 전송해야 한다면  어떻게 할까요?

이때는 파일 압축 명령을 사용하여 파일 크기를 줄여서 보관한다거나 전송하면 됩니다. 압축하는 의미는 누구나 잘 알고 있습니다. 예를 들어 재활용 캔이 있는데 이것을 보통 그냥 버리죠. 일정한 크기가 있기 때문에 그냥 회수를 해서 재활용센터에 가져가면 얼마 가지고 가지 못할 것입니다. 만약 이것들을 발로 밟거나 압축기로 누르면 부피가 많이 줄어들어 한 번에 많은 양의 재활용 캔을 가져갈 수 있을 것입니다.

파일도 마찬가지입니다. 일정 크기의 파일들이 있는데 이것을 장기간 보관하면 그 크기 그대로 유지되니까 압축 명령을 사용하여 크기를 줄이고 그 줄어든 용량만큼 다른 파일들을 위해 활용할 수 있는 것이죠. 여러 파일들을 압축하려 한다면 tar로 묶어서 만들어진 단일 파일을 압축하는 것이고요. 파일을 전송할 때에도 압축된 파일을 전송하면 크기가 줄어든 상태이기 때문에 전송시간이 단축되는 것이죠.

CentOS 6.6에서는 파일을 압축하기 위해 gzip, bzip2, compress를 사용합니다. 하지만 compress는 별도로 패키지를 설치해줘야 사용할 수 있습니다.

[root@sunguru backup]# cd /media/CentOS_6.6_Final/Packages/
[root@sunguru Packages]# ls | grep compress
ncompress-4.2.4-54.el6_2.1.x86_64.rpm
[root@sunguru Packages]# rpm -qa | grep ncompress
[root@sunguru Packages]# rpm -ivh ncompress-4.2.4-54.el6_2.1.x86_64.rpm
warning: ncompress-4.2.4-54.el6_2.1.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:ncompress              ########################################### [100%]
[root@sunguru Packages]# which compress
/usr/bin/compress
[root@sunguru Packages]# 

■ compress & uncompress 명령

compress는 파일 압축을 하기 위해 사용되는 명령이고 uncompress는 이를 풀기 위해 사용하는 명령이다. 이 명령으로 압축 시 파일 확장자. Z가 파일 이름에 따라붙는다.

[root@sunguru /]# cd /backup
[root@sunguru backup]# ls -l
total 48936
drwxr-xr-x. 114 root root    12288 Jul 11 03:31 etc
-rw-r--r--.   1 root root 31631360 Jul 11 01:08 etc_2016071001.tar
-rw-r--r--.   1 root root  8594496 Jul 11 01:08 etc_2016071001.tar.bz2
-rw-r--r--.   1 root root  9848450 Jul 11 01:09 etc_2016071001.tar.gz
drwx------.   2 root root    16384 Jul 11 01:22 lost+found
[root@sunguru backup]# mkdir BAK
[root@sunguru backup]# mv etc_2016071001.tar.bz2 etc_2016071001.tar.gz BAK
[root@sunguru backup]#
[root@sunguru backup]# ls -l
total 30924
drwxr-xr-x.   2 root root     4096 Jul 11 13:23 BAK
drwxr-xr-x. 114 root root    12288 Jul 11 03:31 etc
-rw-r--r--.   1 root root 31631360 Jul 11 01:08 etc_2016071001.tar
drwx------.   2 root root    16384 Jul 11 01:22 lost+found
[root@sunguru backup]#
[root@sunguru backup]# compress etc_2016071001.tar
[root@sunguru backup]# 
[root@sunguru backup]# ls -l
total 15692
drwxr-xr-x.   2 root root     4096 Jul 11 13:23 BAK
drwxr-xr-x. 114 root root    12288 Jul 11 03:31 etc
-rw-r--r--.   1 root root 16035765 Jul 11 01:08 etc_2016071001.tar.Z
drwx------.   2 root root    16384 Jul 11 01:22 lost+found
[root@sunguru backup]#
[root@sunguru backup]# uncompress etc_2016071001.tar.Z
[root@sunguru backup]#
[root@sunguru backup]#
[root@sunguru backup]# ls -l
total 30924
drwxr-xr-x.   2 root root     4096 Jul 11 13:23 BAK
drwxr-xr-x. 114 root root    12288 Jul 11 03:31 etc
-rw-r--r--.   1 root root 31631360 Jul 11 01:08 etc_2016071001.tar
drwx------.   2 root root    16384 Jul 11 01:22 lost+found
[root@sunguru backup]# 

■ gzip & gunzip 명령

gzip는 파일 압축을 하기 위해 사용되는 명령이고 gunzip는 이를 풀기 위해 사용하는 명령이다. 이 명령으로 압축 시 파일 확장자. gz가 파일 이름에 따라붙는다. compress 명령보다 압축률이 뛰어나다. gzip 명령의 -d 옵션을 사용해서 압축을 풀 수도 있다.

[root@sunguru backup]# ls -l
total 30924
drwxr-xr-x.   2 root root     4096 Jul 11 13:23 BAK
drwxr-xr-x. 114 root root    12288 Jul 11 03:31 etc
-rw-r--r--.   1 root root 31631360 Jul 11 01:08 etc_2016071001.tar
drwx------.   2 root root    16384 Jul 11 01:22 lost+found
[root@sunguru backup]#
[root@sunguru backup]# gzip etc_2016071001.tar
[root@sunguru backup]#
[root@sunguru backup]# ls -l
total 9652
drwxr-xr-x.   2 root root    4096 Jul 11 13:23 BAK
drwxr-xr-x. 114 root root   12288 Jul 11 03:31 etc
-rw-r--r--.   1 root root 9848469 Jul 11 01:08 etc_2016071001.tar.gz
drwx------.   2 root root   16384 Jul 11 01:22 lost+found
[root@sunguru backup]#
[root@sunguru backup]# gunzip etc_2016071001.tar.gz
[root@sunguru backup]#
[root@sunguru backup]# ls -l
total 30924
drwxr-xr-x.   2 root root     4096 Jul 11 13:23 BAK
drwxr-xr-x. 114 root root    12288 Jul 11 03:31 etc
-rw-r--r--.   1 root root 31631360 Jul 11 01:08 etc_2016071001.tar
drwx------.   2 root root    16384 Jul 11 01:22 lost+found
[root@sunguru backup]#
[root@sunguru backup]# gzip etc_2016071001.tar
[root@sunguru backup]#
[root@sunguru backup]# ls -l *.gz
-rw-r--r--. 1 root root 9848469 Jul 11 01:08 etc_2016071001.tar.gz
[root@sunguru backup]#
[root@sunguru backup]# gzip -d etc_2016071001.tar.gz
[root@sunguru backup]#
[root@sunguru backup]# ls -l
total 30924
drwxr-xr-x.   2 root root     4096 Jul 11 13:23 BAK
drwxr-xr-x. 114 root root    12288 Jul 11 03:31 etc
-rw-r--r--.   1 root root 31631360 Jul 11 01:08 etc_2016071001.tar
drwx------.   2 root root    16384 Jul 11 01:22 lost+found
[root@sunguru backup]#​

■ bzip2 & bunzip2 명령

bzip2 는 파일 압축을 하기 위해 사용되는 명령이고 bunzip2는 이를 풀기 위해 사용하는 명령이다. 이 명령으로 압축 시 파일 확장자 .bz2가 파일 이름에 붙는다. gzip 명령보다 압축률이 뛰어나다. bzip2 명령의 -d 옵션을 사용해서 압축을 풀 수도 있다.

[root@sunguru backup]# ls -l
total 30924
drwxr-xr-x.   2 root root     4096 Jul 11 13:23 BAK
drwxr-xr-x. 114 root root    12288 Jul 11 03:31 etc
-rw-r--r--.   1 root root 31631360 Jul 11 01:08 etc_2016071001.tar
drwx------.   2 root root    16384 Jul 11 01:22 lost+found
[root@sunguru backup]#
[root@sunguru backup]# bzip2 etc_2016071001.tar
[root@sunguru backup]#
[root@sunguru backup]# ls -l
total 8428
drwxr-xr-x.   2 root root    4096 Jul 11 13:23 BAK
drwxr-xr-x. 114 root root   12288 Jul 11 03:31 etc
-rw-r--r--.   1 root root 8594496 Jul 11 01:08 etc_2016071001.tar.bz2
drwx------.   2 root root   16384 Jul 11 01:22 lost+found
[root@sunguru backup]#
[root@sunguru backup]# bunzip2 etc_2016071001.tar.bz2
[root@sunguru backup]#
[root@sunguru backup]# ls -l
total 30924
drwxr-xr-x.   2 root root     4096 Jul 11 13:23 BAK
drwxr-xr-x. 114 root root    12288 Jul 11 03:31 etc
-rw-r--r--.   1 root root 31631360 Jul 11 01:08 etc_2016071001.tar
drwx------.   2 root root    16384 Jul 11 01:22 lost+found
[root@sunguru backup]#
[root@sunguru backup]# bzip2 etc_2016071001.tar
[root@sunguru backup]#
[root@sunguru backup]# ls -l *.bz2
-rw-r--r--. 1 root root 8594496 Jul 11 01:08 etc_2016071001.tar.bz2
[root@sunguru backup]#
[root@sunguru backup]# bzip2 -d etc_2016071001.tar.bz2
[root@sunguru backup]#
[root@sunguru backup]# ls -l
total 30924
drwxr-xr-x.   2 root root     4096 Jul 11 13:23 BAK
drwxr-xr-x. 114 root root    12288 Jul 11 03:31 etc
-rw-r--r--.   1 root root 31631360 Jul 11 01:08 etc_2016071001.tar
drwx------.   2 root root    16384 Jul 11 01:22 lost+found
[root@sunguru backup]#

실제 리눅스 또는 유닉스 소프트웨어 파일이 배포될 때도 gzip 또는 bzip2 명령으로 압축하여 배포하는 경우가 많습니다. 명령이 어렵지 않으니 이건 꼭 기억하시길~!! ^^

다음 게시물에서는 EXT 파일시스템을 백업/복구하기 위한 dump와 restore 명령에 대해 알아보도록 하겠습니다.






No comments:

Post a Comment