dump -0f /dev/st0 /
1. 백업에 대하여
백업은 자료를 보호하는 하나의 방법으로 시스템관리자가 최우선적으로 해야할 작업이다. 여러 개의
자료 복사본을 만들어 놓고 자료를 잃어버릴 경우를 대비하는 것이다. 백업을 실행하는 가장 안전한
방법은 테이프, 제거가능한 드라이브, 기록가능한 씨디 등 시스템과 떨어진 위치에 저장하는 것이다.
2. 자료가 손실되는 경우
(1) 하드웨어의 결함
(2) 소프트웨어의 버그
(3) 사람의 실수나 오동작
(4) 천재지변등의 자연재해
3. 백업전에 고려할 사항
(1) 백업 데이터 선택 여부 : 어떠한 데이터를 백업할 지를 결정해야 한다. 예를 들면 /home 디렉토
리만을 백업할 것인지, /var 디렉토리를 할 것인지 아니면 전체 백업을
할 것인지를 결정해야 한다.
(2) 백업 주기 : 얼마나 자주 백업할 것인지를 결정해야 한다. 또한 증분백업(Incremental Backup)
을 할 것인지, 전체백업(Full Backup)를 할 것인지도 결정해야 한다. 증분백업이란
말 그대로 백업할 대상중에서 추가된 부분만을 백업하는 것을 말하고 전체백업이란
전체를 그대로 백업하는 것을 말한다. 실제로는 이 두가지 백업형태를 적절히 이용
하는 것이 중요하다. 예를 들면 월요일부터 토요일까지는 추가된 부분만을 증분백
업하고, 일요일날에는 전체백업을 실시한다. 또한 매월 1일에는 전체백업을 실시하
여 한달의 데이터, 1주의 데이터 등의 단위로 백업이 가능하다.
(3) 매체(Media) 선택 여부: 어떠한 백업 매체를 사용할 것인지를 결정해야 한다. 이 매체 선택은
경제적인 면과 효율적인 면, 편리성 등을 고려하여 선택한다.
(4) 백업 방법: 어떠한 프로그램을 선택하냐는 것이다. 리눅스에서 사용가능한 백업방법으로는 tar,
dd, dump, dpio 등이 있고, 이외에도 많은 백업 유틸리티들이 있다. 편리성과 안전성
, 효율성 등을 고려하려 선택하도록 한다.
4. 백업의 미디어
(1) 개요: 백업할 경우 가장 중요하게 고려하는 것이 예비 매체의 선택이다. 비용, 신뢰성, 처리속
도, 가용도를 생각해야 한다.
(2) 백업매체
1) 플로피디스크: 매우 싸며 어느 정도 신뢰할 만하다. 하지만 별로 빠르지 못하고 매우 유동적
이다. 또한 대용량의 데이터 저장시에는 적당치 않다.
2) 테이프: 다소 비싸고 충분히 신뢰할 만하다. 속도도 충분히 빠르다. 테이프의 크기에 따라
편리하게 이용할 수 있다.
3) MOD(Magnetic Optical Drive: 광자기 드라이브) : 대용량의 데이터를 랜덤하게 접근하고 한
부분만 빨리 복원할 수 있다. Giga급의 용량
을 가진다.
4) DAT(Digital Audio Tape) : 카세트 테이브보다 더 작은 크기의 미디어로 Giga급 용량을 갖
는다.
5. 리눅스에서 지원가능한 백업장치
(1) /dev/cdrom: CD-ROM드라이브
(2) /dev/fd0: 플로피디스크
(3) /dev/ht0, /dev/nht0 : IDE 테이프 장치 (예를 들면 Iomega drives)
(4) /dev/nst0, /dev/st0 : DAT(Digital Audio Tape) 나 DDS(Digital Data Storage) 계열의 SCSI
테이프 장치
(5) /dev/nrft0, /dev/nftape, /dev/rft0, /dev/ftape : 플로피 테이프 장치 (예를 들면 QIC-80)
6. 백업툴의 선택
(1) 개요: 전통적인 유닉스툴들에는 tar, dd, cpio, dump등이 있다. tar와 cpio는 유사하고 둘 다
테이프상에서 복원할 수 있고, 거의 모든 미디어를 사용할 수 있다.
(2) 백업툴
1) tar: Unix와 리눅스시스템 모두에서 사용되는 유틸리티로 파일이나 디렉토리들을 하나의 파일
로 묶어주는 역할을 한다. 사용이 쉽고 소수의 파일백업에 좋고, 원본파일을 남겨두므로
안전하다. 전통적인 유닉스의 tar는 압축기능을 하는 옵션이 없지만, 리눅스의 GNU tar는
압축도 지원한다.
2) cpio: tar와 비슷한 유틸리티로 많은 양의 데이터에 대해서는 tar보다 빠르다. 장치파일이나
네트워크 파일등의 특수 파일도 백업이 가능하고 백업본의 크기도 작고, 백업본에 손상된
부분이 있더라도 손상된 부분을 제외하고 나머지 부분을 복구한다. 그러나, 증분백업기능
을 지원하지 않는다.
3) dump: ext2 나 ext3 파일시스템만 지원하고, 파일들을 백업하지않고 파일시스템 자체를 직접
읽어내는 방법을 사용한다. 전체백업과 증분백업이 가능하다.
4) dd : data dump의 약자로 파티션 전체의 백업등이 가능하다. 실제적으로는 백업보다는 다른 경
우에 더욱 더 많이 쓰인다.
5) 기타: amanda, Arkeia, Bru, Veritas(client), UniBACK, ArcServe 등
7. tar를 이용하여 백업하기
(1) 전체백업
1) tar cvfp home.tar /home
=> /home 디렉토리를 퍼미션을 그대로 유지하면서 home.tar라는 파일로 묶는다.
2) tar cf /dev/st0 /home
=> /home디렉토리를 SCSI 테이프장치인 /dev/st0에 백업한다.
3) tar zcf /dev/st0 /home
=> /home디렉토리를 SCSI 테이프장치인 /dev/st0에 압축해서 백업한다.
4) tar zxf /dev/st0
=> SCSI 테이프장치인 /dev/st0 에서 압축을 풀어 현재 디렉토리에 푼다.
5) tar -g list -cvpf home.tar /home
=> -g는 증분백업(Increment backup)에 사용하는 옵션으로 /home 디렉토리를 퍼미션을 그대로
유지하면서 home.tar로 묶는 것은 1번 예제와 같지만 list라는 백업시에 저장되는 파일이나
디렉토리들을 목록화하는 파일을 생성한다. 처음시도할 경우에는 첫번째 예제와 같은 파일
로 생성된다. 그러나 그 다음 시도시에는 list파일과 비교하여 추가된 것만 백업하므로 백
업하여 생성되는 파일명을 같게 해서는 안된다.
(2) 증분백업
1) tar -g list -cvpf home1.tar /home
=> 기존의 list파일을 내용을 보고 그 이후에 변경되거나 추가된 파일들을 home1.tar로 백업
한다. list파일을 편집기로 열어보면 파일의 용량을 숫자로 관리한다. 이 값을 비교하여
변화시에 증분백업을 시도한다. 따라서, 이 파일을 삭제되면 전체백업을 한다.
8. cpio를 이용하여 백업하기
(1) 설명: cpio는 Copy Input ot Output의 약자로 입력받은 것을 출력에 복사한다는 뜻이다. 보통
find명령의 출력을 입력으로 받아 백업디바이스에 저장하는 역할을 한다.
(2) 사용법
[find 명령 | ] cpio options ' > 또는 < ' 디바이스명
(3) options
-o : 표준출력으로 보내어 사용한다. (--extract)
-i : 표준입력으로 받을 때 사용한다. 즉, 백업한 자료를 불러올 때 사용한다.
-v : 과정을 자세히 보여준다.
-c : 데이터 형식을 ASCII형태로 한다.
-d : 필요하면 디렉토리를 생성한다. (--make-directories)
-B : 입출력 블록사이즈를 5120bytes로 한다. 기본 블록사이즈는 512bytes이다.
(4) 사용예
1) find /home | cpio -ocv > /dev/nst0
=> /home 디렉토리의 내용을 SCSI 테이프장치인 /dev/nst0 장치에 백업한다.
2) cpio -icdv < /dev/nst0
=> /dev/nst0에 백업된 데이터를 현재디렉토리에 복원한다. 필요하면 디렉토리도 생성한다.
9. dump를 이용하여 백업하기
(1) 설명: dump는 파일들이 아닌 파일시스템 전체를 백업한다. 보통 파티션단위로 백업할 때 사용
하면 편리하다. dump는 0-9단계의 레벨을 가지고 증분 백업을 지원한다. 레벨 0이 전체
백업이고 나머지 레벨들은 부분백업을 하게 된다. 백업시에 /etc/fstab파일을 참조하며
백업된 데이터 복원은 restore명령을 사용한다.
(2) 사용법
dump options 백업미디어 백업하고자하는 대상
(3) options
-0~9 : 덤프의 레벨을 지정한다. 0은 전체백업이고, 나머지는 부분백업을 한다. 기본레벨은 9이
다.
-f 파일명 또는 디바이스명 : 백업할 미디어를 지정하거나 파일명을 적는다.
-u : dump 를 통해 백업한 후에 /etc/dumpdates라는 파일에 작업에 대한 정보를 기록한다.
(4) 사용예
1) dump -0f /dev/nst0 /home
=> /home 디렉토리 전체를 /dev/nst0 장치에 전체 백업한다.
2) dump -0u -f /dev/nst0 /dev/hda7
=> /dev/hda7 파일시스템 전체를 /dev/nst0 장치에 전체 백업하며 그 작업 정보를 /etc/dumpd
ates라는 파일에 기록한다.
3) dump -0u -f home /home
=> /home 디렉토리 전체를 home이라는 이름으로 전체백업한다. 또한 그 작업정보를 /etc/dump
dates 라는 파일에 기록한다.
4) dump -4u -f /dev/nst0 /dev/hda7
=> level4 수준 또는 그 이하의 백업을 한 뒤에 바뀐 내용을 증분백업한다. 또한 그 작업정보
를 /etc/dumpupdates에 기록한다.
(5) 복원: dump명령으로 백업한 경우에는 restore 명령을 이용하여 복원해야 한다.
1) 사용법
restore options 디바이스명 또는 백업파일명
2) options
-i : 대화식(interactive)으로 복구할 파일을 선택한 후에 복원이 가능하다.
-f 디바이스명 또는 백업파일명 : 백업되어진 파일이나 장치를 지정한다.
-r : 전체백업시에 사용한다. 이 옵션사용시에 파일시스템이 미리 생성되어 있어야 하고, 마운트
도 되어 있어야 하며 해당 디렉토리안에서 작업해야 한다.
3) 사용예
ㄱ. restore -if /dev/st0
=> /dev/st0에 백업된 데이터를 하나씩 확인하면서 복원한다.
ㄴ. restore -rf /dev/nst0
=> /dev/nst0에 백업된 데이터를 전체복원한다. 단 복원하고자 하는 파일시스템이 생성되어
있어야 하며 마운트되어 있어야 하고 해당 디렉토리안에서 작업해야 한다.
예) mke2fs /dev/sda1
mount /dev/sda1 /mnt
cd /mnt
ㄷ. restore -if home
=> home이라는 이름으로 백업된 파일을 복구한다. 실행시키면 다음과 같이 프롬프트가 나타
난다. 지원가능한 명령을 확인해야 한다.
restore > // ? 나 help라고 입력하면 사용가능한 명령을 보여준다.
restore > help
Available commands are:
ls [arg] - list directory
cd arg - change directory
pwd - print current directory
add [arg] - add `arg' to list of files to be extracted
delete [arg] - delete `arg' from list of files to be extracted
extract - extract requested files
setmodes - set modes of requested directories
quit - immediately exit program
what - list dump header information
verbose - toggle verbose flag (useful with ``ls'')
prompt - toggle the prompt display
help or `?' - print this list
If no `arg' is supplied, the current directory is used
restore > ls // 백업된 내용을 보여준다.
.:
bluemountain/ minory/ nanajjang/ quota.user zzang/
lost+found/ mkk737/ posein/ xitem/
restore > add quota.user // 특정한 파일을 선택한다. add뒤에 파일명을 기입하지
않으면 전부선택된다.
restore > ls
.:
bluemountain/ minory/ nanajjang/ *quota.user zzang/
lost+found/ mkk737/ posein/ xitem/
restore > extract
You have not read any volumes yet.
Unless you know which volume your file(s) are on you should start
with the last volume and work towards the first.
Specify next volume # (none if no more volumes): 1 // 볼륨넘버를 입력한다.
set owner/mode for '.'? [yn] y // y라고 입력한다.
10. dd를 이용하여 백업하기
(1) 설명: 전체파티션 단위로 백업할 때 용이하다.
(2) 사용법: 특정파티션을 다른 하드디스크의 파티션으로 백업한다고 가정해보자. 만약 /dev/hda1
을 /dev/hdb1으로 백업한다고 할 때, /dev/hdb1을 /dev/hda1과 같은 사이즈의 파티션으
로 생성한다.
(3) 사용예
1) dd if=/dev/hda1 of=/dev/hdb1 bs=1k
=> /dev/hda1을 /dev/hdb1으로 백업한다.
2) dd if=/dev/hda of=/dev/hdb
=> /dev/hda를 /dev/hdb로 백업한다.
11. 백업의 종류와 복원
(1) 개요: 모든 것을 한번에 백업하는 풀백업(Full Backup)이 있고 부분 부분을 백업하는 부분 백업
(Incremental Backup)이 있다.
(2) 풀백업
1) 설명: tar를 이용하여 쉽게 할 수있다.
2) 사용예
ㄱ. tar cvf /dev/ftape /usr/src
=> /usr/src디렉토리를 /dev/ftape라는 테이프에 백업한다.
ㄴ. tar -cMf /dev/fd0H1440 /usr/src
=> /usr/src디렉토리를 -M(Multi Volume)옵션으로 플로피에 연속 백업한다. 백업하기 전에
플로피는 포맷을 해야 한다.
(3) 부분백업
1) 설명: 특정한 날짜 이후로 바뀐 파일 부분만 백업한다.
2) 사용예
ㄱ. tar -c -v -N '15 June 2002' -f /dev/st0 /usr/src
=> /usr/src 에서 2002년 6월 15일 이후로 변경된 파일만을 DAT에 부분백업한다.
(4) 복원
1) 설명: tar의 x옵션을 이용하여 복원한다.
2) 사용예
tar xvf /dev/fd0H1440
12. 백업의 대상
(1) 개요: 가능한 많은 백업을 하는 것이 좋다. 그러나 쉽게 재설치가 가능한 프로그램은 백업을 원
하지 않을 수도 있다. 또한 시스템상의 이유로 백업을 원치않는 데이터도 있을 것이다. 예
를 들면 커널이 항상 자동으로 생성하는 데이터들은 백업할 필요가 없다. 백업을 해야할지
하지 말아야 할지 잘 구분이 안되는 것이 /var디렉토리 이하의 파일들이다. 무엇이 중요한
가를 고려하여 백업해야 한다.
(2) 백업해야할 대상 : 보통 /home과 /etc(이 디렉토리는 설정파일들이 들어있는 디렉토리이다. 경
우에 따라서는 시스템의 다른 위치에도 설정파일이 있을 수도 있으니 잘 찾아
백업을 해야함)는 꼭 해야한다. 아울어 어떤 프로그램의 소스를 /usr/local
밑에 설치하였다면 이 디렉토리도 백업대상으로 고려해야 한다.
13. 압축백업
(1) 개요: 백업은 많은 공간을 요구하게 되는데 그것은 많은 경제적인 비용을 초래할 수 있다. 이러
한 비용적 부담의 대처방법으로 압축을 들 수 있다. 압축백업은 문제점을 발생시킬 수도
있다. 자연적으로 어떤 환경때문에 만약 하나의 비트가 잘못 되었다면 모든 나머지 데이터
가 사용 못하게 될 수 있다. 어떤 백업프로그램은 에러를 교정해주지만 많은 수의 에러는
어찌할 수 없는 경우가 많다. 백업은 안전해야 되므로 그리 좋은 생각만은 아니다.
(2) 사용예
tar zcvf etc_backup.tar.gz /etc
=> /etc디렉토리를 압축하여 etc_backup.tar.gz파일을 만든다.
14. 테이프 관련 유틸리티- mt
(1) 설명: mt는 테이프(Magnetic Tape)의 작동을 제어하는 유틸리티이다.
(2) 사용법
mt [option] command
(3) option
-h : 사용가능한 command를 보여준다.
-v : mt의 버전을 보여준다. (--version)
-f 디바이스명: 제어하고자하는 디바이스명을 지정한다.
(4) 주요 commnad
status : 테이프의 상태를 보여준다.
fsf 파일수: 테이프를 지정한 파일 수 만큼 앞으로 이동시킨다.
rewind : 테이프를 처음으로 되감는다.
bsf 파일수 : 테이프를 지정한 파일 수 만큼 되감는다.
erase : 테이프의 내용을 지운다.
offline : 테이프를 꺼낸다.
rewoff : 테이프를 처음으로 되감은 뒤에 꺼낸다.
(5) 사용예
1) mt -f /dev/st0 status
=> 테이프의 상태를 보여준다.
2) mt -f /dev/st0 rewind
=> 테이프를 처음으로 되감는다.
3) mt -f /dev/st0 fsf 50
=> 파일 수 50만큼 테이프를 앞으로 이동시킨다.
4) mt -f /dev/st0 erase
=> 테이프의 내용을 지운다.
5) mt -f /dev/st0 offline
=> 테이프를 꺼낸다.
6) mt -f /dev/st0 rewoff
=> 테이프를 처음으로 되감은 뒤 꺼낸다.
2008. 3. 17.
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기