시스템 보안 및 관리 - 시스템 백업

2022. 2. 13. 22:48리눅스마스터 1급 - 필기/리눅스 시스템 관리

시스템 백업이란? 데이터의 손실을 방지 하기 위한 방법 중 하나로 매우 중요한 작업입니다. 백업에는 전체 백업과 부분 백업으로 나뉩니다. 말그대로 전체 백업은 전체를 부분 백업은 부분만을 백업 하는 것입니다.

 

부분 백업은 증가된 내용만 백업하는 증분 백업과 바뀐 부분만을 백업하는 차등 백업으로 구분 할 수 있습니다.

 

백업 방법

백업할 때 사용할 프로그램을 정해야 합니다. 리눅스에서는 tar, dd, dump, cpio, rsync 등 많은 백업 프로그램들이 존재합니다.

 

1. tar : 파일이나 디렉터리를 하나의 파일로 묶어주는 명령입니다. 원본 파일을 그대로 두고 백업 파일을 만들기 때문에 안전하고 편리합니다. 전체 백업과 증분 백업을 지원합니다.

 

p 옵션을 함께 사용하여 파일의 기존 권한을 유지 시켜 줄 수 있습니다.

tar cvfp dir.tar /dir : 전체 백업

 

g 옵션을 사용하면 증분 백업을 할 수 있습니다.

 

tar -g list cvfp dir.tar /dir : 처음에는 전체 백업을 합니다.

tar -g list cvfp dir2.tar /dir : 처음에 만든 list 파일과 비교해서 증가된 내용만 dir2.tar 로 백업합니다.

 

증분 백업 한 파일을 복원 하는 방법은 처음에 백업한 순서대로 복원하면 됩니다.

dir.tar -> dirtar2 순으로 복원하면 됩니다.

 

2. cpio : 많은 양의 데이터를 백업 할때 좋으며 장치 파일이나 네트워크 파일들과 같은 특수 파일들도 백업이 가능하고 백업본의 크기도 작으며 백업본에 손상이 생겨도 손상된 부분을 제외하고 나머지 부분을 복원합니다.

cpio 옵션 >(<) 파일명 형식으로 사용됩니다. 전체 백업만을 지원하며 증원 백업은 지원하지 않습니다.

 

옵션 

-o : 표준 출력으로 보내어 사용합니다. 백업 할 때 사용합니다.

-i : 표준 입력으로 받을 때 사용합니다. 백업본을 복원할 때 사용합니다.

-v : 과정을 출력합니다.

-c : 아카이브 포맷 형식을 'new SVR4 portable format with no CRC' 으로 지정합니다.

-d : 필요할 경우 디렉터리를 생성합니다.

-t : 내용만 확인 할 때 사용합니다.

-F : 입출력 기호(<,>) 대신에 사용할 때 사용합니다.

-B : 입출력 블록 사이즈 조절합니다.

-H : 아카이브 포맷 형식을 지정하는 옵션입니다.

 

3. dump & restore : 파일들이 아닌 파티션 단위로 백업할 때 사용합니다. 전체 백업과 증분 백업을 지원합니다.

백업은 0 부터 9 단계로 지원하며 0은 전체 나머지는 부분 백업입니다.

백업할 때는 dump 명령을 사용하고 데이터 복원 할 때는 restore 명령을 사용합니다.

*백업시 /etc/fstab 파일 참조합니다.

ext2, ext3, ext4만 지원하고 XFS는 지원하지 않습니다.

 

4. dd : 파티션이나 디스크 단위로 백업할 때 사용합니다. 많은 시간을 소모합니다.

dd if=/dev/sda1 of=/dev/sda2 bs=1k -> 블록 사이즈 1kb 단위로 /dev/sda1을 /dev/sda2로 백업합니다. 

 

5. rsync : 네트워크로 연결된 파일들을 동기화합니다.

전체 백업과 증분 백업을 지원합니다.

링크된 파일이나 디바이스 파일을 복사 할 수 있고 tar의 p 옵션처럼 권한도 그대로 유지할 수 있습니다.

ssh와 같은 전송 프로그램으로 전송 또한 가능합니다.

rcp에 비해 전송 속도도 빠르고 root 권한이 필요 없이 모든 사용자들이 사용 가능합니다.