[유닉스] 시스템 백업과 복구 명령어


시스템 백업과 복구 명령어


테이프에 파일 보관 : tar

  • tar 명령은 기본적으로 파일을 자기 테이프(magnetic tape)에 보관하도록 특별히 설계되었음
  • 현재는 여러 개의 파일들을 하나의 파일로 묶는 용도로 더 많이 쓰이고 있음
  • tar 명령의 특징은 단순함, 신뢰성, 안정성, 자기 테이프 장치 이외의 어떤 매체에도 저장할 수 있는 유연성
  • 형식 : tar [options] [생성될 파일명] [대상 파일명 또는 대상 디렉토리, 장치명]


  • 가장 많이 사용되는 옵션은 cvf, tvf, xvf
  • 저장 매체로 플로피 디스크나 자기 테이프로 지정하고 백업하는 예
    • /dev/fd0는 플로피 드라이브를 백업 매체로 지정하는 것
    • /var 디렉토리를 플로피 드라이브로 복사
# tar –cf /dev/fd0 /var
  • 백업될 크기가 하나의 플로피 디스크에 저장하기에 너무 커서 연속적으로 백업을 받아야 할 경우 –M 옵션 사용
# tar –cMf /dev/fd0 /var
tar: Removing leading ‘/’ from member names
Prepare volume #2 for ‘/dev/fd0’ and hit return;
Prepare volume #3 for ‘/dev/fd0’ and hit return;
Prepare volume #4 for ‘/dev/fd0’ and hit return;
Prepare volume #5 for ‘/dev/fd0’ and hit return;
......
  • /var 디렉토리를 자기 테이프로 백업하는 경우
    • /dev/st0는 자기 테이프 저장 매체를 의미
# tar –cf /dev/st0 /var
  • 플로피 디스크 /dev/fd0에 옵션 –tvf를 사용하여 백업된 데이터의 내용을 보는 예
# tar –tvf /dev/fd0
drwxr-xr-x root/root 0 2002-05-10 12:24:31 var/
drwxr-xr-x root/root 0 2002-05-10 12:01:53 var/lost+found/
drwxr-xr-x root/root 0 2002-05-10 03:41:43 var/lib/
drwxr-xr-x root/root 0 1996-02-15 07:07:19 var/lib/rpm/
-rw-r—r- root/root 11403264 2002-05-10 12:28:35 var/lib/rpm/Packages
  • -xvf를 사용하여 tar로 백업한 파일을 복구
# tar –xvMf /dev/fd0
var/
var/lost+found/
var/lib/
var/lib/rpm/
var/lib/rpm/Packages
Prepare volume #2 for ‘/dev/fd0’ and hit return:
var/lib/rpm/Name
var/lib/rpm/Basenames
Prepare volume #3 for ‘dev/fd0’ and hit return:
var/lib/rpm/Group
......
  • /var 디렉토리를 usb 저장매체에 backup.tar 파일명으로 백업하고, 백업한 파일을 /test 디렉토리에 복구한 후에 ls 명령어로 확인하는 경우
# tar –cf /dev/sdb1/backup.tar /var
# ls /dev/sdb1
backup.tar
# tar –xvf /dev/sdb1/backup.tar
# ls
var


점진적 백업 : dump, restore

  • dump 명령은 파일 시스템을 백업하는데 있어서 가장 일반화된 명령어
  • dump 명령을 사용하여 시스템을 백업하고 restore 명령을 사용하여 백업된 파일을 복구
  • dump는 파일 시스템 전체나 파일 시스템의 일부를 백업할 수 있음
  • 백업될 파일은 0에서 9까지 레벨로 지정하여 작업
  • 동일한 파일 시스템을 백업할 때, 예전이 이미 백업해 놓은 파일이 있다면, 그 백업 파일과 비교해서 변경된 파일이나 수정된 파일만을 목록으로 만들어 변경된 목록만을 업데이트 하는 형식
  • 예를 들면,
  • 일요일에 파일 시스템을 레벨 0으로 완전 백업을 했을 경우
  • 월요일에 레벨 1로 덤프하면 완전 백업 이후 변경된 모든 데이터를 기록
  • 화요일에 레벨 2로 덤프하면 레벨 1 덤프 이후 변경된 데이터를 기록
  • 레벨 0은 완전 백업을 의미, 1에서 9까지는 점진적 백업이라 함
  • 형식 : dump [option argument] file-to-dump

  • /home 디렉토리에 대해 전체 백업을 진행하여 /backup 디렉토리에 저장할 경우
    • dump 레벨 0으로 /home 디렉토리를 /backup 디렉토리에 backup.dump 파일로 백업
# dump –0f /backup/backup.dump /home
  • tape 장치에 dump를 이용한 백업의 예
    • /home 디렉토리를 테이프 장치로 백업하는 예
    • /dev/st0는 첫 번째 테이프 장치를 의미하는 시스템 파일
    • 테이프 장치가 여러 개 있다면 /dev/st1, /dev/st2 순서로 이름이 지정됨
# dump –0f /dev/st0 /home
  • dump로 백업한 파일은 restore 명령으로 복구, restore는 dump로 백업한 파일만 복구시킬 수 있음

  • restore 명령을 이용하여 /home 디렉토리 중에서 /home/user1 이라는 서브디렉토리만을 선택적으로 복구하는 예
    • 복구하기 전에 /home/user1 디렉토리 안의 모든 파일을 지우고 시작
    • add 명령을 사용하여 user1이 user1으로 ‘’가 붙어있는데, 이는 백업 파일 (/backup/backup.dump)에서 user1 디렉토리만 활성화시켜 복구한다는 의미
# restore –if /backup/backup.dump
restore > ls
......
home/
restore > cd home/
restore > ls
./home:
ksshin/ user1/
restore > add user1/
restore > verbose
verbose mode on
restore > ls
./home:
4096 ./ 4096 ksshin/ 4096 *user1/
2 ../
restore >
  • restore로 복구하기 전에, 백업한 디렉토리인 “/home”이 “/” 디렉토리 밑에 있으므로 “/”로 이동해서 복구해야 함
restore > extract
Extract requested files
You have not read any volumes yet.
Unless you know which volume your file(s) are on you ......
......
restore > quit
# cd user1
# ls
......


파일 보관 : cpio

  • cpio 명령은 파일을 디스크 장치나 테이프 장치에 백업하기 위해 많이 사용되는 일반적인 명령

  • cpio 명령을 사용하여 백업하기 위해서는 “ ”(pipe) 기호와 리다이렉션 기호를 사용
  • cpio는 표준 입력장치로부터 입력사항을 받아들이고, 표준 출력장치로 출력사항을 보냄
  • 표준 입력은 ls, cat, find 명령을 사용할 수 있고, 출력은 저장 매체인 플로피 디스크, 테이프, 하드디스크 등

표준 입력으로 ls 명령을 사용하여 저장장치에 백업하는 예

  • 플로피에 백업
# ls [백업할 파일] | cpio –o > /dev/fd0
  • 테이프에 백업
# ls [백업할 파일] | cpio –o > /dev/st0
  • 하드디스크에 백업
# ls [백업할 파일] | cpio –o > [아카이브 파일을 만들 위치]
  • usb에 백업
# ls [백업할 파일] | cpio –o > /dev/sdb1


백업했던 파일을 복구하는 예

  • 플로피의 백업 파일 복구
# cpio –i < /dev/fd0
  • 테이프의 백업 파일 복구
# cpio –i < /dev/st0
  • 하드디스크의 백업 파일 복구
# cpio –i < [아카이브 파일 위치]
  • usb의 백업 파일 복구
# cpio –i < /dev/sdb1


백업 저장 매체로 하드디스크를 지정하여 파일을 백업한 후, 다시 백업한 파일을 복구하는 예

  • 백업
# ls –F
test1/ test2
# ls | cpio –ov > backup.cpio
backup.cpio
test1
test2
1 blocks
# ls –l backup.cpio
-rx---r- 1 root root 512 Jul 19 22:09 backup.cpio
#
  • 복구
# rm –rf test1
# rm –f test2
# ls
backup.cpio
#
# cpio –ifv < backup.cpio
cpio: backup.cpio not created: newer or same age version exists
backup.cpio
test1
teset2
1 blocks
# ls
backup.cpio test1 test2
#