2010. 4. 20. 11:51

linux에서 백업 하기

#####################################
# 0. 참고자료
# 1. remote backup
# 2. 원격지의 하드를 로컬로 옮기는 것 
# 3. 압축을 사용한 백업
# 4. tar 를 이용한 백업   
# 5. 다단계 백업
# 6. rsync 를 이용하여 윈도우즈 백업하기 Mini-HOWTO
#####################################
0. 참고자료
 . http://wiki.kldp.org/wiki.php/%BDý%BA%C5۰%FC%B8%AE#s-5
         . Linux Complete Backup and Recovery HOWTO (송호철)
         . Backup using Amanda (유성태)
         . ADSM Backup (공문헌)
         . Rsync-Backup at Windows (김정수)
         . Partimage HOWTO (이돈현)
         . partimage를 사용하여 파티션별 백업과 복구를 하는 방법과 스크립트 사용법
         . 리눅스용 고스트(백업) 프로그램 소개
1. remote backup
 o tar cvfz - directory | rsh host_ip -l sam "cat > file-name.tgz"
 o tar cvf - directory | rsh host_ip "tar xvf - "

 o tar cvf - directory | ssh userid@host_ip "tar xvf - "


2. 원격지의 하드를 로컬로 옮기는 것
 ssh remotehost "cat /dev/hdb" | cat > /dev/hdb

3. 압축을 사용한 백업
http://wiki.kldp.org/Translations/html/SysAdminGuide-KLDP/x2521.html
안타깝게도, 압축된 백업은 문제를 일으킬 소지가 있다. 압축이 이루어지는 근본 원리에 비춰보면, 전체 압축 데이터 중에서 단 하나의 비트만 손상되어도 다른 모든 데이터들이 쓸모 없게 되고 만다
한가지 대안은 각각의 파일을 따로 압축하는 것이다. 이렇게 하면, 파일 하나가 손상되었다고 해서 전체 백업을 모두 날려야하는 일은 없을 것이다. 결국 손상된 파일은 포기할 수 밖에 없지만, 그렇다고 해서 모든 파일을 압축하지 않는 것보다는 >이 방법이 좀 낫다. afio 프로그램(cpio의 개정판)을 쓰면 이렇게 할 수 있다

4. tar 를 이용한 백업
http://wiki.kldp.org/Translations/html/LAME/server-backup.html
``tar'' 를 백업 솔루션으로 사용하기로 결정하였다면 다양한 명령행 옵션을 알기 위하여 시간을 투자할 필요가 있다; 옵션에 대한 설명을 보려면 "man tar" 라고 타이핑하면 된다. 그리고 적당한 백업 매체에 액세스하는 방법도 알아야 할 것이다; 비록 유닉스 세계에서는 모든 장치가 파일과 같이 취급되지만, 테이프와 같은 문자 장치에 기록을 할 때에는 "파일" 의 이름이 장치 자체를 나타낸다. (예를 들어, ``/dev/nst0'' 는 스카시 기반의 테이프 드라이브를 나타낸다.)

다음의 명령은 당신 리눅스 시스템 전체를 ``/archive/'' 파일 시스템에 백업할 것이다. 이 백업에서 빠지는 부분은 가짜 파일 시스템인 ``/proc/'', ``/mnt/'' 에 마운트된 파일 시스템, ``/archive/'' 파일 시스템 (백업 셋트 자체를 다시 백업한>다는 것은 의미가 없다!), Squid 가 사용하는 상당히 큰 캐시 파일이다. (이들을 백업하는 것은, 내 의견으로는, 백업 매체의 낭비이며 필요하지도 않다):tar -zcvpf /archive/full-backup-`date '+%d-%B-%Y'`.tar.gz \
    --directory / --exclude=mnt --exclude=proc --exclude=var/spool/squid .


이 명령의 길이에 겁먹지마라! 우리가 명령을 구성 부분으로 쪼개놓고 나면 이 강력한 유틸리티의 아름다움을 알게될 것이다.

앞의 명령에서 지적한 옵션으로는, ``z'' (압축; 백업 자료를 ``gzip'' 을 이용하여 압축한다), ``c'' (생성; 새로운 저장 파일을 만든다), ``v'' (수다; 백업이 되고 있는 파일의 목록을 보여준다), ``p'' (퍼미션 보존; 파일 보호를 위한 정보는 >복구할 수 있도록 "기억해" 둔다) 가 있다. 그 외에도, ``f'' (파일) 옵션은 그 다음의 인자가 생성할 저장 파일 (또는 장치) 의 이름이라는 것을 나타낸다. 파일 이름에 오늘 날짜를 넣기 위하여 어떻게 했는지 보면, ``date'' 명령을 두개의 역따>옴표로 둘러싸서 만들어내고 있다. 일반적으로 사용되는 이름 규칙은 압축되지 않은 저장 파일에는 ``tar'' 를 뒤에 붙이고, 압축된 저장파일의 경우에는 ``tar.gz'' 를 뒤에 붙이는 것이다.

``--directory'' 옵션은 백업을 시작하기 전에 옵션 뒤에 지정한 디렉토리 경로로 일단 가라는 것을 나타낸다. (우리의 예에서는, ``/'' 디렉토리로 가서 백업이 시작된다.) ``--exclude'' 옵션은 지정한 디렉토리나 파일은 백업하지 말라고 지시한>다. 마지막으로, ``.'' 글자는 현재 디렉토리에 있는 모든 것을 백업해야 함을 나타낸다.

참고: 주의: tar 에 사용되는 옵션은 대소문자를 구분한다는 것을 명심하여야 한다! 게다가, 대부분의 옵션은 한 글자짜리 (예. ``f'') 로 사용될 수도 있고, 좀 더 외기 쉬운 완전한 옵션 이름 (예. ``file'') 으로도 사용될 수 있다. 한 글자짜리>를 쓸 때에는 그 앞에 ``-'' 문자를 붙여야 하고, 완전한 이름을 사용할 때에는 그 글자를 두개를 써야 한다. 다시한번 말하지만, tar 명령에 대한 "man" 페이지를 꼭 참조하기 바란다.

또 하나의 예로서, (앞의 예에서는 전체 를 백업하면서 그 중에 몇가지를 제외하는 방식을 썼지만) 이번에는 지정한 몇개의 파일 시스템만을 스카시 테이프 드라이브에 기록하는 방법을 살펴 보자:tar -cvpf /dev/nst0 --label="Backup set created on `date '+%d-%B-%Y'`." \
    --directory / --exclude=var/spool/ etc home usr/local var/spool


위의 명령에서 ``z'' (압축) 옵션이 사용되지 않았음을 주목하기 바란다. 나는 테이프에 압축된 자료를 기록하는 것을 강력히 반대한다. 왜냐하면, 테이프에 있는 자료의 일부가 깨지면 백업 셋트 전체를 못쓰게 되기 때문이다. 테이프의 일부가 파>손되더라도 압축을 사용하지 않고 저장된 경우에는 파손되지 않은 파일은 상당히 많이 복구할 수 있다.

테이프 드라이브는 문자 장치이기 때문에, 실제 파일 이름을 지정하는 것은 불가능하다. 따라서, tar 에서 파일 이름에 해당하는 인자는 장치의 이름 즉 ``/dev/nst0'' (스카시 버스에 연결된 첫번째 테이프 장치) 와 같은 방식으로 지정하여야 한다
.

참고: 주의: ``/dev/nst0'' 장치는 백업 셋트를 다 기록한 다음 자동으로 되감기를 하지 않는다; 따라서 하나의 테이프에 여러개의 셋트를 기록할 수 있다. (같은 장치를 ``/dev/st0'' 라고 지정하게 되면 백업 셋트가 기록되자마자 테이프는 자동으
로 감기게 된다.)

백업 셋트에 파일이름을 지정할 수 없기 때문에, ``--label'' 옵션을 사용하여 저장 파일 자체에다가 백업 셋트에 대한 추가 정보를 저장할 수 있다.

마지막으로, ``/etc/'', ``/home/'', ``/usr/local'', ``/var/spool/'' 에 있는 파일들만 (Squid 캐시 자료 파일은 빼고) 테이프에 기록된다.

테이프를 이용할 때에는 테이프를 되감거나 꺼내기 위하여 다음과 같은 명령을 사용하게 된다:mt -f /dev/nst0 rewind
mt -f /dev/nst0 offline


작은 정보: 팁: 저장 파일이 만들어질 때 맨 앞에 있는 ``/'' (슬래시) 문자는 잘리는 것을 보게 될 것이다. 이는 tar 의 기본적인 동작 방식으로서 복구하는 과정에서 실수로 중요한 파일을 옛날 버전의 파일로 덮어쓰는 것을 막기위한 것이다. 만>약 이런 식으로 동작하는 것을 원하지 않는다면 (이것도 하나의 기능 이라는 사실을 기억하라!), tar 명령에다가 ``--absolute-paths'' 옵션을 주면 맨 앞의 슬래시가 보존된다. 물론, 나는 이렇게 하는 것이 위험 하기 때문에 권장하지는 않는다!

5. 다단계 백업
http://wiki.kldp.org/Translations/html/SysAdminGuide-KLDP/x2418.html

6. rsync 를 이용하여 윈도우즈 백업하기 Mini-HOWTO
http://wiki.kldp.org/wiki.php/RsyncForWindows