서버/Linux II 2016. 3. 4. 11:46

Linux II - 11. 백업 & 복구

 

 

 

login as: root
root@192.168.1.7's password:
Last login: Thu Mar  3 17:38:59 2016 from 192.168.1.1
[root@CentOS2 /root]#

 

 

 

1. 백업

 

데이터 정보를 보존하는 방법을 백업이라고 하며, 나중에 복구를 위해서라도 백업은 필수 작업이다.

 

 백업 필요성

백업 대상 

데이터 손실 원인 

 예상하지 못한 상황 발생

 관리자 실수

 하드웨어 오류 발생

 소프트웨어 오류 발생

 파일 시스템

 백업 이후 변경된 파일 시스템

 어플리케이션

 각종 환경 설정 및 사용자 파일

 하드웨어 오류

 소프트웨어 오류

 관리자 실수

 공격자 침입 및 도난

 

 

 

 

2. 백업 유형

 

(요일)

(일)

(월) 

(화) 

(수) 

(목) 

(금) 

(토) 

 데이터

완전 백업

 A

B

E

 증분 백업

 A

B

 E 

 차등 백업

 A

A,B 

A,B,C

A,B,C,D

A,B,C,D,E

A,B,C,D,E,F 

 

 

 1) 완전 백업(Full Backup)


   - 파일 시스템 중에 특정 내용을 전체 백업하는 방식이다.

   - 장점 : 확실한 복구가 가능하다.

   - 단점 : 백업 시간 및 비용은 파일 시스템 용량과 비례한다.

 

 

 2) 증분백업(Incremental Backup)

 

   - 최근에 백업한 시점을 기준으로 변경되거나 추가된 데이터만 백업하는 방식이다.

   - 장점 : 백업 시간이 빠르다.

   - 단점 : 복구 시간이 느리다.

 

 

 3) 차등백업(Differential Backup)

 

  - 완전 백업한 시점을 기준으로 변경되거나 추가된 데이터만 백업하는 방식이다.

  - 장점 : 확실한 복구가 가능하며, 증분 백업보다 복구 시간이 빠르다.

  - 단점 : 백업 시간 및 비용은 파일 시스템 용량과 비례한다.

             단, 완전 백업본이랑 최근 차등 백업본을 복원하면 시간을 단축할 수 있다.

 

 

 - 기본적으로 백업하는 대상은 다음과 같다.

 

[root@CentOS2 /root]# ls -d /etc /var/log /home /usr
/etc  /home  /usr  /var/log

 

 - 백업을 않해도 되는 대상은 다음과 같다.

 

[root@CentOS2 /root]# ls -d /tmp /var/tmp /dev /proc
/dev  /proc  /tmp  /var/tmp

 

 

 

 

3. 'tar' 명령어를 이용한 백업

 

 

 - 백업에 사용할 디스크 파티션 선정

 

[root@CentOS2 /root]# fdisk -l /dev/sdc

Disk /dev/sdc: 213 MB, 213909504 bytes
64 heads, 32 sectors/track, 204 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00024910

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1         204      208880   83  Linux

 

 

 - 파일 시스템 생성 및 마운트 실시


[root@CentOS2 /root]# mkfs -t ext4 /dev/sdc1


[root@CentOS2 /root]# mkdir /backup
[root@CentOS2 /root]# mount /dev/sdc1 /backup

[root@CentOS2 /root]# df -h /dev/sdc1
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdc1       194M  1.8M  182M   1% /backup

 

 

Ex1) 완전 백업 (상대 경로)

 

[root@CentOS2 /root]#
[root@CentOS2 /root]# cd /home
[root@CentOS2 /home]# ls
lost+found  user1  user2


[root@CentOS2 /home]# tar -cf /backup/home.tar *

[root@CentOS2 /home]# ls /backup
home.tar  lost+found

[root@CentOS2 /home]# tar -tf /backup/home.tar
lost+found/
user1/
user1/.bash_logout
user1/.mozilla/
user1/.mozilla/plugins/
user1/.mozilla/extensions/
user1/.gnome2/
~ 중간 생략 ~

 

 

 

 

Ex2) 증분 백업

 

[root@CentOS2 /home]# useradd ccna
[root@CentOS2 /home]# useradd ccnp
[root@CentOS2 /home]# useradd ccie

[root@CentOS2 /home]# ls
ccie  ccna  ccnp  lost+found  user1  user2

[root@CentOS2 /home]# tar -cf /backup/cisco.tar ccna ccnp ccie

[root@CentOS2 /home]# ls /backup
cisco.tar  home.tar  lost+found

[root@CentOS2 /home]# tar -tf /backup/cisco.tar
ccna/
ccna/.bash_logout
ccna/.mozilla/
ccna/.mozilla/plugins/
ccna/.mozilla/extensions/
ccna/.gnome2/
~ 중간 생략 ~

 

 

[root@CentOS2 /home]# userdel -r ccna
[root@CentOS2 /home]# userdel -r ccnp
[root@CentOS2 /home]# userdel -r ccie

[root@CentOS2 /home]# rm -rf /backup/*
[root@CentOS2 /home]# ls /backup

 

 

 

 

Ex3) 완전 백업과 증분 백업을 이용한 백업 스케쥴 설정

 

 -  'g' 옵션을 이용하여 'backup.list'를 생성하면, 시간 정보를 비교하여 변경된 부분만 증분 백업을 할 수 있다.

 

  [root@CentOS2 /home]# tar -g /backup/backup.list -cf /backup/home0.tar *   (완전 백업)
  [root@CentOS2 /home]# tar -g /backup/backup.list -cf /backup/home1.tar *   (증분 백업)
  [root@CentOS2 /home]# tar -g /backup/backup.list -cf /backup/home2.tar *   (증분 백업)
  [root@CentOS2 /home]# tar -g /backup/backup.list -cf /backup/home3.tar *   (증분 백업)

 

 

일요일(완전 백업)

[root@CentOS2 /home]# tar -g /backup/backup.list -cf /backup/home0.tar *

 

 

월요일(증분 백업)

[root@CentOS2 /home]# useradd ccna
[root@CentOS2 /home]# tar -g /backup/backup.list -cf /backup/home1.tar *

 

 

화요일(증분 백업)
[root@CentOS2 /home]# useradd ccnp
[root@CentOS2 /home]# tar -g /backup/backup.list -cf /backup/home2.tar *

 

 

수요일(증분 백업)
[root@CentOS2 /home]# useradd ccie
[root@CentOS2 /home]# tar -g /backup/backup.list -cf /backup/home3.tar *

 


[root@CentOS2 /home]# ls /backup
backup.list  home0.tar  home1.tar  home2.tar  home3.tar

 

 

완전 백업
[root@CentOS2 /home]# tar -tf /backup/home0.tar | grep .bashrc
user1/.bashrc
user2/.bashrc

 

증분 백업
[root@CentOS2 /home]# tar -tf /backup/home1.tar | grep .bashrc
ccna/.bashrc

 

증분 백업
[root@CentOS2 /home]# tar -tf /backup/home2.tar | grep .bashrc
ccnp/.bashrc

 

증분 백업
[root@CentOS2 /home]# tar -tf /backup/home3.tar | grep .bashrc
ccie/.bashrc

 

 

 - 일요일은 완전 백업을 하는 날이기 때문에, 기존에 'backup.list'를 삭제하고 새로 생성하여 백업을 실시한다.

 

 

일요일(완전 백업)

[root@CentOS2 /home]# rm /backup/backup.list
rm: remove 일반 파일 `/backup/backup.list'? y

[root@CentOS2 /home]# tar -g /backup/backup.list -cf /backup/homeA.tar *

 

 


[root@CentOS2 /home]# userdel -r ccna
[root@CentOS2 /home]# userdel -r ccnp
[root@CentOS2 /home]# userdel -r ccie

[root@CentOS2 /home]# rm -rf /backup/*
[root@CentOS2 /home]# ls /backup

 

 

Ex4) 차등 백업

 

  [root@CentOS2 /home]# tar -g /backup/backup.list -cf /backup/home0.tar *   (완전 백업)
  [root@CentOS2 /home]# tar -g /backup/backup.list -cf /backup/home1.tar *   (증분 백업)
  [root@CentOS2 /home]# tar -g /backup/backup.list -cf /backup/home2.tar *   (증분 백업)

  [root@CentOS2 /home]# tar -g /backup/backup.list -cf /backup/home2.tar *   (차등 백업)

 

 

일요일(완전 백업)
[root@CentOS2 /home]# tar -g /backup/backup.list -cf /backup/home0.tar *

[root@CentOS2 /home]#
[root@CentOS2 /home]# cp /backup/backup.list /backup/fullbackup.list

 

 

월요일(증분 백업)
[root@CentOS2 /home]# useradd ccna
[root@CentOS2 /home]# tar -g /backup/backup.list -cf /backup/home1.tar *

 

 

화요일(증분 백업)
[root@CentOS2 /home]# useradd ccnp
[root@CentOS2 /home]# tar -g /backup/backup.list -cf /backup/home2.tar *

 

 

수요일(차등 백업)

[root@CentOS2 /home]# useradd ccie
[root@CentOS2 /home]#
[root@CentOS2 /home]# cp /backup/fullbackup.list /backup/backup.list
cp: overwrite `/backup/backup.list'? y
[root@CentOS2 /home]#
[root@CentOS2 /home]# tar -g /backup/backup.list -cf /backup/home3.tar *

 


[root@CentOS2 /home]# ls /backup
backup.list  fullbackup.list  home0.tar  home1.tar  home2.tar  home3.tar

 

 

완전 백업
[root@CentOS2 /home]# tar -tf /backup/home0.tar | grep .bashrc
user1/.bashrc
user2/.bashrc

 

증분 백업
[root@CentOS2 /home]# tar -tf /backup/home1.tar | grep .bashrc
ccna/.bashrc

 

증분 백업
[root@CentOS2 /home]# tar -tf /backup/home2.tar | grep .bashrc
ccnp/.bashrc

 

차등 백업
[root@CentOS2 /home]# tar -tf /backup/home3.tar | grep .bashrc
ccie/.bashrc
ccna/.bashrc
ccnp/.bashrc

 

 

 

4. 백업 복원

 

위의 예제를 이어서 한다면, 가장 최근의 완전 백업(home0.tar)과 차등 백업(home3.tar)을 풀면 된다.

 

[root@CentOS2 /home]# rm -rf /home/*
[root@CentOS2 /home]# ls

[root@CentOS2 /home]# ls /backup
backup.list  fullbackup.list  home0.tar  home1.tar  home2.tar  home3.tar

[root@CentOS2 /home]# tar -xf /backup/home0.tar

[root@CentOS2 /home]# ls
lost+found  user1  user2

[root@CentOS2 /home]# tar -xf /backup/home3.tar
[root@CentOS2 /home]# ls
ccie  ccna  ccnp  lost+found  user1  user2

 

 

 

 

 

 

 - 설정 초기화

 

[root@CentOS2 /home]# userdel -r ccna
[root@CentOS2 /home]# userdel -r ccnp
[root@CentOS2 /home]# userdel -r ccie

[root@CentOS2 /home]# rm -rf /backup/*

 

[root@CentOS2 /home]# umount /backup
[root@CentOS2 /home]# rm -rf /backup

[root@CentOS2 /home]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        13G  4.4G  7.3G  38% /
tmpfs           495M   72K  495M   1% /dev/shm
/dev/sda3       477M  2.3M  449M   1% /home

[root@CentOS2 /home]# cd
[root@CentOS2 /root]#

'서버 > Linux II' 카테고리의 다른 글

Linux II - 12. RPM 패키지 관리  (0) 2016.03.04
Linux II - 10. Linux 부팅 과정  (0) 2016.03.03
Linux II - 09. Linux Shell  (0) 2016.02.26
Linux II - 08. 디스크 Quota  (0) 2016.02.23
Linux II - 07. RAID 관리  (0) 2016.02.23
Posted by 김정우 강사(카카오톡 : kim10322)
,


Q