-
backuplinux/centOS 2018. 7. 6. 11:42
☆ 백업 개요
백업(Backup)의 개념 : 데이타나 정보가 지닌 가치를 보존하는 것으로 외부의 침입자로부터 보호, 예기치 못한 사 고로부터의 복원, 시스템 백업은 매일 해야 한다.
▶ 백업이 필요한 이유
- 예기치 못한 천재지변
- 관리자의 실수
- 기계적 오류
- 소프트웨어 버그
▶ 주요 백업 대상
- 전체 파일 시스템
- 마지막 백업 후의 변경된 파일 시스템
- 어플리케이션
- 각종 환경 설정 파일
- 사용자 파일 등
▶ 데이터 손실의 주요 원인
- 하드웨어적인 사유
- 소프트웨어적인 사유
- 사용자의 부주의
- 해커의 침입
- 기타 도난, 자연재해
☆ 백업 종류
일반적으로 백업 종류는
(ㄱ) 완전 백업(Full Backup),
(ㄴ) 증분 백업(Incremental Backup)
(ㄷ) 차등백업(Differential Backup)
등이 있다.
(1) 완전 백업(Full Backup)
모든 데이터를통째로 한 번에 백업하는 방법을 말한다. 말 그대로 모든 것을 백업하기 때문에 백업하는데 오래
ltrks이 걸리며, 백업 매체의용량 또한 커야 하므로,비용 소모가 많은 것이 단점이다. 그러나 시스템에 문제가 발 생되었을 때 발생되기 이전의 상태로 시스템을 확실히 복구할 수 있는 장점이 있다. 리눅스를 설치한 후에는 완전
백업을 하는 것이 향후에 리눅스를 재설치 해야 할 경우를 리눅스를 다시 설치하지 않고서도 백업을 복원시켜 부트 로더만 수정해 주면 설치 원상태로 되돌려 놓을 수 있는 이점이 있다.
(2) 증분 백업(Incremental Backup)
일반적으로 백업은 완전 백업과 증분 백업을 병행하는데, 증분 백업은 완전 백업한 이후에 변경된 데이터만을 백업 하는 방법이다. 최근 백업이후에 변경된 파일에 대해서만 백업이 이뤄지기 때문에 빠른 시간 내에 백업이 이뤄지는
장점이 있다. 리눅스 설치 이후에 생성되는 데이터이후에 파일에 대해서 증분 백업으로 백업을 도모하는 것이 리눅
스 시스템에 문제가 발생되더라도 리눅스를 다시 설치하지 않고서도 완전 백업을 복원하여 그 이후의 생성된 데이 터이후에 파일을 문제 방생 이전의 상태로 되돌려 놓을 수 있게 된다.
증분 백업은 일반 백업이나 증분 백업을 마지막으로 수행한 후 만들어지거나 변경된 파일을 백업합니다. 해당 파일은 백업된 것으로 표시됩니다. 즉, 보관 특성의 선택이 취소됩니다. 일반 백업과 증분 백업을 함께 수행하는 경우 데이터를 복원하려면 모든 증분 백업 세트와 최신 일반 백업 세트가 있어야 합니다.
(3) 차등백업(Differential Backup)
보통 증분백업과 비슷하기 때문에 혼동하는 경우가 없지 않는데, 차등 백업은 완전 백업이 이뤄진 이후의 모든 데
이터에 대해서 백업이 이뤄지도록 하는 방법이다. 증분 백업으로 백업된 데이터가 있더라도 차등 백업은 이러한 것 을 가리지 않고, 전체 백업 이후의 모든 데이터를 백업하는 것을 말한다. 차등 백업은 완전 백업 이후의 모든 파일
에 대해서 백업이 이뤄지기 때문에 데이터를 복원하는데 있어서는 시간이 오래 걸리는 불편함이 있을 수 있다.
차등 백업은 일반 백업이나 증분 백업을 마지막으로 수행한 후 만들어지거나 변경된 파일을 복사합니다. 하지만 해당 파일이 백업된 것으로 표시되지는 않습니다. 즉, 보관 특성의 선택이 취소되지 않습니다. 일반 백업과 차등 백업을 함께 수행하는 경우 파일과 폴더를 복원하려면 최신 차등 백업과 최신 일반 백업이 있어야 합니다.
☆ 백업/복구 명령어
(1) 백업/복구 명령어 종류
(백업 명령어의 특징)
■ 디렉토리 단위의 백업
- tar 명령어 마운트된 파일시스템내에서 백업하는 명령어
- cpio 명령어 마운트된 파일시스템내에서 백업하는 명령어
■ 파일시스템 단위의 백업
- dump/restore 명령어 파일시스템 단위(파티션 단위)로 백업하는 명령어
■ 디스크 단위의 백업
- dd 명령어 디스크 마이그레이션(Migration)하는 명령어
(완전히 같게 만들기 때문에 동일한 종류의 디스크로 작업해야한다.)
이 문서에서는 가장 많이 사용되고 있는 tar 명령어를 통한 백업 부분만을 다룬다.
(2) tar 명령어
(백업 방법) (※ 주의) 백업 받을 당시에 절대 경로 형태로 백업받지 않는다.
(상대경로)
# cd /home
# tar cf /mnt/backup/home-backup.tar . (# tar cfz /mnt/backup/home:backup.tar.gz . )
# cd /home
# tar xf /mnt/backup/home-backup.tar
(절대경로)
# tar cf /mnt/backup/home-backup.tar /home
# cd /
# tar xf /mnt/backup/home-backup.tar /home
(복구 방법)
# cd /home
# tar tf /mnt/backup/home-backup.tar
# tar xf /mnt/backup/home-backup.tar
OPTIONS
-c, --create create a new archive
-f, --file=ARCHIVE use archive file or device ARCHIVE
-z, --gzip, --gunzip, --ungzip filter the archive through gzip
-t, --list list the contents of an archive
-x, --extract, --get extract files from an archive
-g, --listed-incremental=FILE handle new GNU-format incremental backup
-G, --incremental handle old GNU-format incremental backup
-j, --bzip2 filter the archive through bzip2
-p, --preserve-permissions, extract permissions information
--same-permissions
[EX1] tar 명령어를 이용한 풀백업(Full Backup) & 증분 백업(Incremental Backup)
매일 매일 증가하는 데이터가 큰 서버에서 풀백업을 매일 같이 받는 방법은 좋은 방법이 아니다. 중간에 적당하게
증분 백업을 섞어 쓰는 방법이 좋다. tar 명령어를 통해서 풀백업과 증분 백업을 적당하게 섞어 쓰는 방법을 배워
보자.
Target Directory : /home
# tar cvzf /backup/home_`date +%m%d`.tar.gz /home
(백업 방법)
■ 풀백업(Full Backup) 방법
# cd /home
# tar -g /backup/2002-05-11.list –cvzf /backup/2002-05-11-full.tar.gz .
■ 증분백업(Incremental Backup) 방법
# cd /home
# tar -g /backup/2002-05-11.list –czvf /backup/2002-05-12.tar.gz .
(복구 방법)
■ 풀백업(Full Backup) 복구방법
# cd /home
# tar -g /backup/2002-05-11.list –xzvf /backup/2002-05-11-full.tar.gz
■ 증분백업(Incremental Backup) 복구방법
# cd /home
# tar -g /backup/2002-05-11.list –xzvf /backup/2002-05-12.tar.gz
① tar 명령어를 사용한 풀 백업(Full Backup)
테스트할 때, 백업 받을 타켓 디렉토리는 /home/user01 로 정했다. 좀 작은 디렉토리를 선정했다.
# cd /home/user01
# cp -p /etc/passwd file1
# cp -p /etc/hosts file2
# cp -p /etc/group file3
# mkdir -p /backup
# tar -g /backup/backup.list -cvzpf /backup/full_backup.tar.gz /home/user01
tar: /home/user01/.mozilla: Directory is new
tar: /home/user01/.mozilla/extensions: Directory is new
tar: /home/user01/.mozilla/plugins: Directory is new
tar: Removing leading `/' from member names
/home/user01/
/home/user01/.mozilla/
/home/user01/.mozilla/extensions/
/home/user01/.mozilla/plugins/
/home/user01/.bash_logout
/home/user01/.bash_profile
/home/user01/.bashrc
/home/user01/file1
/home/user01/file2
/home/user01/file3
# ls -l /backup
-rw-r--r-- 1 root root 132 Mar 3 02:59 backup.list
-rw-r--r-- 1 root root 1839 Mar 3 02:59 full_backup.tar.gz
# tar tvzf /backup/full_backup.tar.gz
drwx------ user01/user01 70 2010-03-03 02:59:31 home/user01/
drwxr-xr-x user01/user01 22 2010-03-03 00:34:57 home/user01/.mozilla/
drwxr-xr-x user01/user01 1 2010-03-03 00:34:57 home/user01/.mozilla/extensions/
drwxr-xr-x user01/user01 1 2010-03-03 00:34:57 home/user01/.mozilla/plugins/
-rw-r--r-- user01/user01 33 2010-03-03 00:34:57 home/user01/.bash_logout
-rw-r--r-- user01/user01 176 2010-03-03 00:34:57 home/user01/.bash_profile
-rw-r--r-- user01/user01 124 2010-03-03 00:34:57 home/user01/.bashrc
-rw-r--r-- root/root 2027 2010-03-03 00:35:12 home/user01/file1
-rw-r--r-- root/root 265 2010-03-03 02:12:24 home/user01/file2
-rw-r--r-- root/root 776 2010-03-03 00:35:12 home/user01/file3
# cat /backup/backup.list
1267552779
2051 120364 /home/user01/.mozilla/plugins
2051 120365 /home/user01/.mozilla/extensions
2051 120363 /home/user01/.mozilla
② tar 명령어를 사용한 증분 백업(Incremental Backup)
# cp /etc/passwd file4
# tar -g /backup/backup.list -cvzpf /backup/incremental1.tar.gz /home/user01
tar: Removing leading `/' from member names
/home/user01/
/home/user01/.mozilla/
/home/user01/.mozilla/extensions/
/home/user01/.mozilla/plugins/
/home/user01/file4
# ls -l /backup
-rw-r--r-- 1 root root 132 Mar 3 03:02 backup.list
-rw-r--r-- 1 root root 1839 Mar 3 02:59 full_backup.tar.gz
-rw-r--r-- 1 root root 1075 Mar 3 03:02 incremental1.tar.gz
# tar tvzf /backup/incremental1.tar.gz
drwx------ user01/user01 77 2010-03-03 03:01:32 home/user01/
drwxr-xr-x user01/user01 22 2010-03-03 00:34:57 home/user01/.mozilla/
drwxr-xr-x user01/user01 1 2010-03-03 00:34:57 home/user01/.mozilla/extensions/
drwxr-xr-x user01/user01 1 2010-03-03 00:34:57 home/user01/.mozilla/plugins/
-rw-r--r-- root/root 2027 2010-03-03 03:01:32 home/user01/file4
# cat /backup/backup.list
1267552935
2051 120364 /home/user01/.mozilla/plugins
2051 120365 /home/user01/.mozilla/extensions
2051 120363 /home/user01/.mozilla
-> 이 파일은 기준이 되는 파일이므로 변화가 없다.(스냅샷 파일 = 사진 파일)
③ tar 명령어를 사용한 증분 백업(Incremental Backup)
# cp /etc/services file5
# tar -g /backup/backup.list -cvzpf /backup/incremental2.tar.gz /home/user01
tar: Removing leading `/' from member names
/home/user01/
/home/user01/.mozilla/
/home/user01/.mozilla/extensions/
/home/user01/.mozilla/plugins/
/home/user01/file5
# ls -l /backup
-rw-r--r-- 1 root root 132 Mar 3 03:03 backup.list
-rw-r--r-- 1 root root 1839 Mar 3 02:59 full_backup.tar.gz
-rw-r--r-- 1 root root 1075 Mar 3 03:02 incremental1.tar.gz
-rw-r--r-- 1 root root 99185 Mar 3 03:03 incremental2.tar.gz
# tar tvzf /backup/incremental2.tar.gz
drwx------ user01/user01 84 2010-03-03 03:03:35 home/user01/
drwxr-xr-x user01/user01 22 2010-03-03 00:34:57 home/user01/.mozilla/
drwxr-xr-x user01/user01 1 2010-03-03 00:34:57 home/user01/.mozilla/extensions/
drwxr-xr-x user01/user01 1 2010-03-03 00:34:57 home/user01/.mozilla/plugins/
-rw-r--r-- root/root 362031 2010-03-03 03:03:35 home/user01/file5
④ tar 명령어를 사용한 증분 백업(Incremental Backup)
파일을 삭제하고 백업을 받아 본다.
# ls
file1 file2 file3 file4 file5
# rm -f file5
# ls
file1 file2 file3 file4
# tar -g /backup/backup.list -cvzpf /backup/incremental3.tar.gz /home/user01
-> 출력내용 확인
# ls -l /backup
-rw-r--r-- 1 root root 132 Mar 3 03:08 backup.list
-rw-r--r-- 1 root root 1839 Mar 3 02:59 full_backup.tar.gz
-rw-r--r-- 1 root root 1075 Mar 3 03:02 incremental1.tar.gz
-rw-r--r-- 1 root root 99185 Mar 3 03:03 incremental2.tar.gz
-rw-r--r-- 1 root root 272 Mar 3 03:08 incremental3.tar.gz
⑤ tar 명령어를 사용한 복구 방법
(가정) 불의의 사고로 /home/user01 폴더의 내용이 지워졌다고 가정한다.
# cd /home/user01
# rm -rf *
# cd /
# tar -g /backup/backup.list -xvzf /backup/full_backup.tar.gz
home/user01/
home/user01/.mozilla/
home/user01/.mozilla/extensions/
home/user01/.mozilla/plugins/
home/user01/.bash_logout
home/user01/.bash_profile
home/user01/.bashrc
home/user01/file1
home/user01/file2
home/user01/file3
# ls /home/user01
file1 file2 file3
# tar -g /backup/backup.list -xvzf /backup/incremental1.tar.gz
home/user01/
home/user01/.mozilla/
home/user01/.mozilla/extensions/
home/user01/.mozilla/plugins/
home/user01/file4
# ls /home/user01
file1 file2 file3 file4
# tar -g /backup/backup.list -xvzf /backup/incremental2.tar.gz
home/user01/
home/user01/.mozilla/
home/user01/.mozilla/extensions/
home/user01/.mozilla/plugins/
home/user01/file5
# ls /home/user01
file1 file2 file3 file4 file5
# tar -g /backup/backup.list -xvzf /backup/incremental3.tar.gz
home/user01/
home/user01/.mozilla/
home/user01/.mozilla/extensions/
home/user01/.mozilla/plugins/
tar: Deleting `home/user01/file5'
-> 출력화면 확인
# ls /home/user01
file1 file2 file3 file4