[리눅스마스터1급] 2.3.3 시스템 백업

cateto·2022년 3월 5일
0

li-master1

목록 보기
10/27
post-thumbnail

2.리눅스 시스템 관리 / 3.시스템 및 보안 관리 / 2.3.3 시스템 백업

백업은 참 중요하다. 하드웨어 결함, 소프트웨어의 버그, 사람의 실수나 오동작, 천재지변.... 과 같은 이유로 자료가 손실되는데 이 때 시스템과 떨어진 곳에 자료를 저장하면 자료를 보호할 수 있다고 한다. 하지만 꾸준히 하기가 쉽지 않은 습관 ㅎㅎㅎ

백업 정책

  1. 백업 대상 선택
  • 쉽게 설치 가능하거나, 자동으로 생성되는 데이터는 백업할 필요가 없다.
  • 예를 들면 리눅스 파일시스템에서 /etc, /usr, /home, /var 등이 있다.
  1. 백업의 종류
  • 전체 백업(Full backup), 부분 백업(Partial backup)
  • 증분 백업(Incremental Backup), 차등 백업(Differentail Backup)
  1. 백업 주기
  • 얼마나 자주 백업할 것인지?
  • 예를 들면, 월요일부터 토요일은 추가된 부분을 증분 백업하고 일요일에는 전체 백업을 실시한다.
  1. 매체 선택 여부
  • 백업 매체는 경제성, 효율성, 신뢰성, 편의성 등을 고려
  • SSD, USB, CD, DVD, Blu-ray, 하드디스크
  1. 백업 방법
  • 어떤 백업 프로그램을 선택할지
  • 리눅스 기준 : tar, dd, dump, cpio, rsync

Backup and Restore(명령어)

tar(tape archive)

유닉스와 리눅스 모두 사용가능한 유틸리티로, 파일이나 디렉터리를 하나의 파일로 묶어주는 역할을 한다. 유닉스는 압축 관련 옵션이 없지만 리눅스의 GNU tar는 압축을 지원한다.

1) 전체 백업
tar cvfp home.tar /home

/home 디렉터리의 권한을 그대로 유지하며 home.tar 파일로 묶는다.

tar xvf home.tar

home.tar를 풀어서 현재 디렉터리에 복원한다.

2) 증분 백업
tar -g list -cvfp home1.tar /home

-g 옵션이 증분백업 옵션으로, list라는 파일 내용을 토대로 증분ㅂ 백업을 시도 첫번쨰는 전체 백업 두번재는 증가된 것 백업

tar xvf home1.tar -C

순차적으로 복원.

3) 날짜를 이용한 부분 백업
tar -c -v -N '13 May 2013' -f home.tar /home

2013년 5월 13일 이후로 변경된 파일을 home.tar로 백업

4) 분할 및 압축 백업
tar zcvf - /home | split -b 10m - home.tar.gz

/home 디렉터리를 압축하여 10MB 단위로 백업한다. 파일 명 뒤에 split 으로 인해 aa, ab등의 형태로 나눠서 생선된다.
home.tar.gzaa, home.tar.gzab ....

cat home.tar.gza* | tar zxvf -

split 명령은 텍스트 관련 파일 명령어 이므로 복원할 때 cat 명령으 사용한다.

cpio(copy input to output)

tar와 비슷한 유틸리티로 많은 양의 데이터에 관해서는 tar보다 빠르다. 장치파일이나 네트워크 파일 등의 특수 파일도 백업이 가능하고 간혹 백업본에 손상된 부분이 있어도 손상된 부분을 제외하고 나머지 부분을 복구한다. 단점으로 증분 백업은 지원하지 않는다.

[shell command] cpio option > 파일명
cpio [option] < 파일명

예) find /home | cpio =ocv > home.cpio

/home을 home.cpio 파일로 백업한다.

cpio -icdv < home.cpio

home.cpio의 내용을 현재 디렉터리에 복원한다.

ls *.conf | cpio -ocv > conf.cpio

*.conf 파일을 conf.cpio로 백업한다.

cpio -ic < conf.cpio

conf.cpio에 백업된 데이터를 복원한다.

cpio -icvt < conf.cpio

conf.cpio의 내용만 확인한다.

cpio -icvt "s*.conf" < conf.cpio

conf.cpio의 내용중 s*.conf에 해당하는 내용만 보여준다.

dump , restore

파일들이 아닌 파일 시스템 전체를 백업할 때 사용하는 유틸리티. 전체 백업과 증분 백업을 지원하고, 레벨 0이 전체 백업이고 0~9 단계의 레벨을 가지고 부분백업시에 사용한다. 참고로 ext 파일 시스템인 ext2, ext3, ext4만 지원하고 centos7의 기본파일시스템인 xfs는 지원하지 않는다.

dump

파티션 단위로 백업하는 명령이다.

dump [option] 파일명 백업대상

예) dump -0u -f backup.dump /dev/sda7

/dev/sda7을 backup.dump에 전체 백업하고 작업 정보를 /etc/dumpdates에 기록한다.

restore

dump로 백업한 내용을 복원할 때 사용하는 명령이다. 파일기반으로 백업한 경우에는 복원하고자 하는 파티션 영역에 해당 파일을 복사 후에 실행하면 된다.
restore [option] 백업파일명

예) restore -rf backup.dump

backup.dump 에 백업된 데이터를 전체 복원한다.

restore -if home.dump

상호 대화식으로 복원한다. ls, add, extract 등의 명령어를 사용하여 확인 및 부분 복원이 가능하다.

dd(data dumper)

파티션이나 디스크 단위로 백업할 때 사용하는 유틸리티.

예)
dd if=/dev/sda1 of=/dev/sdb1 bs=1k

블록 사이즈 1킬로바이트 단위로 하여 /dev/sda1/dev/sdb1으로 백업한다.

dd if=/dev/sda of=/dev/sdb bs=1M

블록 사이즈 1메가바이트 단위로 하여 /dev/sda/dev/sdb으로 백업한다.

rsync(remote synchronous)

네트워크로 연결된 원격지의 파일을 동기화하는 유틸리티.

rsync [option] source destination
예)
rsync -av /home /home5

/home을 그대로 보존하면서 /home5 로 백업한다.

rsync -avz 192.168.0.2:/home /

원격지에 /home을 압축해서 복사한다. 원격지에서 rsync 데몬을 활용하지 않은 경우에는 기본적으로 ssh를 이용한다.

rsync -avz -e ssh root@192.168.0.2:/home ~/backup

원격지에 ssh를 이용하여 root 권한으로 접속하여 백업한다.

rsync -av --delete /home 192.168.5.13:/backup

로컬 디렉터리인 /home을 원격지인 192.168.5.13의 /backup 디렉토리에 복사하는데, 진행상황을 출력한다. 아울러 수신 측에 /backup 디렉토리 안에 존재하는 /home과 비교해서 송신측에서 보내온 내용에 해당하지 않는 파일들을 삭제한다.

profile
Curious for Everything

0개의 댓글