Linux

백업 명령어 및 압축 명령어

장성한군사 2008. 11. 20. 17:28

cpio 명령어


- # cpio [option] [device_name]

- # cpio [option] [file_name]


option

의미

 

 

-c

 ASCII 형태의 헤더 정보를 읽거나 기록

-d

 복사 중 필요에 따라 디렉토리를 생성

-i

 표준 입력으로 정의된 cpio 형식의 파일을 읽어와 원래의 파일과 디렉토리로 복구

-o

 하드디스크의 데이터를 cpio 형식의 파일로 데이터 백업

-p

 디렉토리의 데이터를 다른 디렉토리로 복사

-t

 -i 옵션과 함께 사용, cpio 파일에 포함된 디렉토리와 파일의 목록 출력

-u

 무조건 복사

-v

 cpio의 실행시 처리하는 파일과 디렉토리의 목록 출력


 디렉토리 내의 파일들을 백업

 

 # ls | cpio -ocv > backup.cpio   // 현재 디렉토리의 파일들을 backup.cpio 파일로 백업

 # ls backup.cpio                       // backup.cpio 파일이 정상적으로 생성되었는지 확인

# cpio -it < backup.cpio              // backup.cpio 파일에 기존 파일들이 존재하는지 확인

 

 backup.cpio 파일을 현 디렉토리에 복원

 

 # mkdir a                                // 복구를 위한 새 디렉토리 생성

 # cd a                                    // 새 디렉토리로 이동

 # cpio -ivc < ../backup.cpio     // 현재 디렉토리의 파일들을 backup.cpio란 파일로 백업

 

 ** 특정 파일만 복원

 # cpio -ivc "in* < ../backup.cpio               // in으로 시작하는 파일만 복구

 



dd 명령어


- 지정한 블록 크기만큼 파일을 복사할 때 사용하는 명령어

- # dd [option] [변수=값]


- 시스템 전체를 테이프 장치로 백업      : # dd if=/ of=/dev/st0

- 파티션을 테이프 장치로 백업             : # dd if=/dev/sda3 of=/dev/st0

- 하드 to 하드                                      : # dd if=/dev/sda of=/dev/sdb



gzip/gunzip 명령어


- gzip : 압축하는 명령어 /  gunzip(=gzip -d) : 압축 푸는 명령어


- # gzip [option] [file_name]


option

의미

 

 

-n

 n은 1부터 9사이의 숫자를 지정, 1이 가장 빠르지만 압축율은 낮음

-c

 압축 결과를 출력하고, 원본 파일은 그대로 둔다.

-d

 압축 해제 옵션, gunzip과 같음

-f

 강제 압축

-l

 압축 파일의 정보 출력

-r

 디렉토리를 지정 시 디렉토리에 포함된 모든 파일 압축

-t

 압축 파일 테스트

-v

 자세한 정보 출력

-h

 도움말 출력

-V

 버전 정보 출력

 


- gzip에는 파일을 묶는 기능이 없어 -r옵션으로 디렉토리를 압축하면 디렉토리 내의 파일들이 각각 gz파일로 압축된다.



- # gunzip [option] [file_name]


option

  -l : 압축 파일의 정보 출력          -r : 디렉토리를 지정 시 디렉토리에 포함된 모든 파일 압축 해제

  -t : 압축 파일 테스트                -v : 자세한 정보 출력

  -h : 도움말 출력                     -V : 버전 정보 출력



bzip2/bunzip2 명령어


- gzip보다 압축률이 좋음 ( -r 옵션은 없음 )

- bunzip2 (=bzip2 -d)



compress / uncompress


- 압축률이 가장 낮음

- uncompress(=compress -d)


[※ tar]

- # tar cvfz [file_name] : tar로 묶고 결과를 gzip으로 압축

- # tar cvfj [file_name] : tar로 묶고 결과를 bzip2로 압축



tar 명령어


- 여러개의 파일을 하나로 묶는 명령어


- # tar [option] [생성할 tar 파일] [묶을파일]

- # tar [option] [tar 파일] -C [풀어줄 위치]

 

option

의미

 

 

-c

 정의한 파일 이름으로 파일을 묶음

-f

 옵션 뒤에는 tar 파일명을 명시하거나, 디바이스를 명시

-v

 verbose 모드로 자세한 내용 출력

-t

 tar 파일의 내용을 확인

-x

 tar 파일에서 정의된 파일을 추출, 정의하지 않으면 전체 파일 추출

-C

 tar 파일이 해제될 위치 지정

-g

 --listed-incremental과 같은 옵션으로 증분백업 옵션




tar를 이용한 증분 백업


증분 백업 하기


 

 # mkdir /data

 # mkdir /backup

 # cp -f /bin/* /data               // /bin의 파일들을 모두 /data에 복사

 # cp -f /bin/* /home              // /bin의 파일들을 모두 /home에 복사

 


>> step1 : Full Backup : /home과 /data의 파일들을 /backup에 백업

 

 # tar zcfp /backup/home_bak_full.tgz -g /backup/home_backup /home

 # tar zcfp /backup/data_bak_full.tgz --listed-incremental /backup/data_backup /data

 


>> step2 : 1차 증분 백업 : /data와 /home에 파일을 추가한 후 /backup에 백업

 

 # cp /sbin/* /data/

 # cp /sbin/* /home/

 

 

 # tar zcfp /backup/home_bak_1.tgz -g /backup/home_backup /home

 # tar zcfp /backup/data_bak_1.tgz -g /backup/data_backup /data

 


>> step3 : 2차 증분 백업 : /data에만 파일을 추가한 후 /backup에 백업

 

 # cp -f /boot/* /data/

 

 

 # tar zcfp /backup/home_bak_2.tgz -g /backup/home_backup /home

 # tar zcfp /backup/data_bak_2.tgz -g /backup/data_backup /data

 




증분 백업 복구


 

 # rm -rf /data                   // /data 삭제

 # rm -rf /home                  // /home 삭제

 


>> step1 : Full Backup 파일 복구

 

 # cd backup

 # tar zxf home_bak_full.tgz -C /

 # tar zxf data_bak_full.tgz -C /

 

 # ls -l /home | more

 # ls -l /data | more

 


>> step2 : 1차 증분 백업 파일 복구

 

 # tar zxf home_bak_1.tgz -g ./home_backup -C /

 # tar zxf data_bak_1.tgz -g ./data_backup -C /

 

 # ls -l /home | more

 # ls -l /data | more

 


>> step3 : 2차 증분 백업 파일 복구

 

 # tar zxf home_bak_2.tgz -g ./home_backup -C /

 # tar zxf data_bak_2.tgz -g ./data_backup -C /

 

 # ls -l /home | more

 # ls -l /data | more

 

 

by redyoon | 2008/02/28 22:37 | unix/linux | 트랙백 | 덧글(0)

트랙백 주소 : http://redyoon.egloos.com/tb/111005
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]