- 2014.11.26
/backup/ 에 있는 grub.conf, inittab, login.defs 파일을 현재 위치로 복사한 뒤 실습을 시작한다.
1. gzip
gzip option source
: 압축
-d : 압축 해제
gzip 압축
# gzip ./grub.conf
# ll
합계 12
-rw------- 1 root root 476 2014-11-26 12:58 grub.conf.gz
-rw-r--r-- 1 root root 884 2014-11-26 12:58 inittab
-rw-r--r-- 1 root root 1816 2014-11-26 12:58 login.defs
=> 원본 파일이 없어진 것 확인 할 수 있다.
gzip 압축해제
# gzip -d ./grub.conf.gz
-- decompress
# ll
합계 12
-rw------- 1 root root 739 2014-11-26 12:58 grub.conf
-rw-r--r-- 1 root root 884 2014-11-26 12:58 inittab
-rw-r--r-- 1 root root 1816 2014-11-26 12:58 login.defs
=> 역시 원본 압축 파일 없어짐
여러 파일 압축
# gzip ./*
# ll
합계 12
-rw------- 1 root root 476 2014-11-26 12:58 grub.conf.gz
-rw-r--r-- 1 root root 884 2014-11-26 12:58 inittab.gz
-rw-r--r-- 1 root root 1816 2014-11-26 12:58 login.defs.gz
=> 동시에 묶이진 않고 각자 개별 파일로만 압축이 된다.
2. bzip2
# bzip2 option source
: 압축
-d : 압축 해제
bzip2 압축
# bzip2 ./grub.conf
# ll
합계 12
-rw------- 1 root root 542 2014-11-26 12:58 grub.conf.bz2
-rw-r--r-- 1 root root 884 2014-11-26 12:58 inittab
-rw-r--r-- 1 root root 1816 2014-11-26 12:58 login.defs
=> 원본 파일 없어짐
bzip2 압축 해제
# bzip2 -d ./grub.conf.bz2
# ll
합계 12
-rw------- 1 root root 739 2014-11-26 12:58 grub.conf
-rw-r--r-- 1 root root 884 2014-11-26 12:58 inittab
-rw-r--r-- 1 root root 1816 2014-11-26 12:58 login.defs
=> 원본 압축 파일 없어짐
* bzip2 역시 gzip과 마찬가지로 동시에 여러개 압축이 되지 않는다.
3. tar = tape Archive
tar option Archiving_file_name source
c - 보관하겠다.
x - 보관을 풀겠다.
v - verboss(보여주세요)
f - file
z - gzip 으로 압축 또는 해제
j - bzip2 으로 압축 또는 해제
-C path : path 에다 해당 작업 진행
cvf(생성), xvf(해제) 이 2가지 방식만 기억하면 된다
*Tip
tar 로 압축할 때엔 뒤에 .tar 를 붙여 tar 파일인 것을 남기는 습관이 좋다.
# tar cvf ./gc ./grub.conf
./grub.conf
# ll
합계 24
-rw-r--r-- 1 root root 10240 2014-11-26 13:33 gc
-rw------- 1 root root 739 2014-11-26 12:58 grub.conf
-rw-r--r-- 1 root root 884 2014-11-26 12:58 inittab
-rw-r--r-- 1 root root 1816 2014-11-26 12:58 login.defs
=> 이렇게 되면 gc라는 파일이 tar 파일인지 육안으로 확인하기 쉽지 않음
=> 카세트 테잎이나 CD처럼 안에 내용물이 얼마 들어가든 상관 없이 일정 공간이 생성된다.
# tar cvf ./gc.tar ./grub.conf
./grub.conf
# ll
합계 36
-rw-r--r-- 1 root root 10240 2014-11-26 13:33 gc
-rw-r--r-- 1 root root 10240 2014-11-26 13:34 gc.tar
-rw------- 1 root root 739 2014-11-26 12:58 grub.conf
-rw-r--r-- 1 root root 884 2014-11-26 12:58 inittab
-rw-r--r-- 1 root root 1816 2014-11-26 12:58 login.defs
=> tar 파일 확인 쉬움
[실습]
grub.conf 를 일단 지우고 tar 풀어보자
# rm ./grub.conf
# tar xvf ./gc.tar
./grub.conf
# ll
합계 36
-rw-r--r-- 1 root root 10240 2014-11-26 13:33 gc
-rw-r--r-- 1 root root 10240 2014-11-26 13:34 gc.tar
-rw------- 1 root root 739 2014-11-26 12:58 grub.conf
-rw-r--r-- 1 root root 884 2014-11-26 12:58 inittab
-rw-r--r-- 1 root root 1816 2014-11-26 12:58 login.defs
=> 압축 명령어들과 다르게 tar는 파일이 그대로 있는 것을 확인할 수 있다.
[문제]
현재 디렉터리에 있는 파일(grub.conf, inittab, login.defs)을 gil.tar 로 보관시켜보세요
# tar cvf gil.tar ./grub.conf ./inittab ./login.defs
tar 파일을 gzip 으로 압축
# gzip ./gil.tar
# ll
합계 4
-rw-r--r-- 1 root root 1953 2014-11-26 13:37 gil.tar.gz
이 압축된 파일을 /backup/ 에 압축 푸세요
# gzip -d ./gil.tar.gz
# tar xvf ./gil.tar
# mv ./grub.conf ./inittab ./login.defs /backup/
* Tip
tar 로 해제할 떄엔 현재 자신이 위치한 곳에 풀린다.
[실습 - 교재]
# tar cvf ./xinetd.tar /etc/xinetd.d/
tar: Removing leading `/' from member names
/etc/xinetd.d/
/etc/xinetd.d/rsync
# ll
합계 12
-rw-r--r-- 1 root root 10240 2014-11-26 13:53 xinetd.tar
# tar xvf ./xinetd.tar
etc/xinetd.d/
etc/xinetd.d/rsync
# ll
합계 16
drwxr-xr-x 3 root root 4096 2014-11-26 13:54 etc
-rw-r--r-- 1 root root 10240 2014-11-26 13:53 xinetd.tar
# ll ./etc/
합계 4
drwxr-xr-x 2 root root 4096 2014-10-30 01:57 xinetd.d
# ll ./etc/xinetd.d/
합계 4
-rw-r--r-- 1 root root 332 2014-03-28 19:54 rsync
=> tar는 내가 지정해준 디렉터리 까지, 경로 자체를 보관한다.
=> 또한 풀 때에는 내가 있는 경로 기준으로 풀린다.
[문제]
/bin 디렉터리의 모든 파일을 gzip 압축 및 tar 로 묶어서
/home 디렉터리 안에 binlist.tar.gz 라는 파일로 생성
# tar cvf /home/binlist.tar /bin/
tar: Removing leading `/' from member names
/bin
...
/bin/zcat
# ll
합계 8696
-rw-r--r-- 1 root root 8888320 2014-11-26 13:58 binlist.tar
drwxr-xr-x 3 root root 4096 2014-11-26 13:54 etc
-rw-r--r-- 1 root root 10240 2014-11-26 13:53 xinetd.tar
# gzip /home/binlist.tar
# ll /home
합계 4019
drwx------ 4 badnom badnom 1024 2014-11-25 15:01 badnom
-rw-r--r-- 1 root root 4100186 2014-11-26 13:58 binlist.tar.gz
drwx------. 2 root root 12288 2014-10-30 01:51 lost+found
* # gzip /bin/* 해서 /bin/ 것이 다 날라간 경우
백업 해놓은 gzip 명령 파일을 일반 계정으로 ftp 통해 업로드한다.
하지만 업로드 한 압축파일은 실행파일이 아니기 때문에 GUI 환경 통해 해당 파일을 실행파일로 속성 변경이 필요하다.
만약 GUI로 고칠 수 없는 상황이면 복구가 불가능하다. (가장 기초적인 명령어들이 bin 에 있기 때문)
# ./gzip -d /bin/*
=> /bin 에 .gz 로 개별적으로 묶여있던 파일들이 압축 해제된다. */
위의 문제를 bzip2 로 똑같이 진행
# tar cvf /home/binlist.tar /bin/
tar: Removing leading `/' from member names
/bin/
...
/bin/rnano
# bzip2 /home/binlist.tar
# ll /home/
합계 7611
drwx------ 4 badnom badnom 1024 2014-11-25 15:01 badnom
-rw-r--r-- 1 root root 3677201 2014-11-26 14:22 binlist.tar.bz2
-rw-r--r-- 1 root root 4100186 2014-11-26 13:58 binlist.tar.gz
drwx------. 2 root root 12288 2014-10-30 01:51 lost+found
[정리]
- gzip, bzip2 (압축)
1. 용량 작아짐
2. 원본 삭제
3. 단일 파일만 가능
4. 큰 파일의 압축 효율은 bzip2가 더 좋다.
- tar (보관)
1. 용량 커짐
2. 원본 유지
3. 다중파일 가능
4. tar + 압축
tar로 묶으면서 동시에 압축하기
# tar cvfz filename.tar.gz source
# tar cvfj filename.tar.bz2 source
압축 해제까지 한꺼번에 하기
# tar xvfz filename.tar.gz
# tar xvfj filename.tar.bz2
2가지 방법으로 /bin/ 디렉터리를 압축하세요
# tar cvfz ./binlist.tar.gz /bin/
# tar cvfj ./binlist.tar.bz2 /bin/
# ll
합계 7688
-rw-r--r-- 1 root root 3677201 2014-11-26 14:38 binlist.tar.bz2
-rw-r--r-- 1 root root 4103268 2014-11-26 14:37 binlist.tar.gz
drwxr-xr-x 3 root root 4096 2014-11-26 13:54 etc
-rwxr-xr-x 1 samadal samadal 67500 2014-11-26 14:11 gzip
-rw-r--r-- 1 root root 10240 2014-11-26 13:53 xinetd.tar
[문제]
현재 디렉터리에 있는 binlist.tar.xx 파일을 경로이동 하지 말고
/home/ 디렉터리에 풀어보세요
# tar xvfzC ./binlist.tar.gz /home/
# tar xvfj ./binlist.tar.bz2 -C /home/
아래 방식이 햇갈리지 않고 편리한 것 같다.
* 도움말 보기
# tar --help
# man tar
'Study > CentOS' 카테고리의 다른 글
[17] rpm(2), yum (0) | 2015.03.28 |
---|---|
[16] rpm(1) (0) | 2015.03.28 |
[14] SETUID, SETGID, Stickybit, UMASK (0) | 2015.03.28 |
[13] 계정 복구, 계정 관련 Trouble Shooting, chown -R (0) | 2015.03.28 |
[12] 소유권, 허가권 실습, ftp 관련 권한 (0) | 2015.03.28 |