커피닉스, 시스템 엔지니어의 쉼터 커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
* HanIRC의 #coffeenix 방
[ 장비 및 회선 후원 ]
HOME > 시스템 관리 / 서버운영 > 백업(backup) / 시스템 복구 도움말
검색 : 사이트 WHOIS 웹서버 종류


  자료를 다른 파티션으로 그대로 백업(rsync이용) 작성일 : 2003/10/02 00:19
 
  • 글쓴이 : 좋은진호 ( http://coffeenix.net/ )
  • 조회수 : 14732
          [ 이전화면 / 수정 ]   비밀번호 :     인쇄용 화면
      제  목 : 자료를 다른 파티션으로 그대로 백업(rsync이용)
    작성자 : 좋은진호(truefeel, http://coffeenix.net/ )
    작성일 : 2003.10.1(수)
    수정일 : 2004. 1.4(일), 제외할 파일 패턴 부분 추가

    하나의 파티션을 그대로 다른 파티션으로 옮길 때 tar나 cpio를 많이 사용한다.
    여기서는 rsync를 이용하여 그대로 백업(? 복사)하는 방법하는 방법을 소개한다.

    1. 원격 시스템끼리 (서버 쪽에 rsync 데몬이 띄워져 있어야 함)

    rsync는 주로 리모트 서버간의 파일 동기화할 때 사용하는 프로그램이다.
    이해를 돕기위해 원격 시스템간 파일 동기화 예를 들어보자.

    * 명령 : rsync [옵션] source디렉토리 dest디렉토리


    # rsync -avz --progress htdocs/ test::homepage


    -a : archive 모드로
    -v : 더 자세하게 진행내용을 보여줌
    -z : 압축해서 전송
    --progress : 파일별 전송상황을 퍼센트로 보여줌

    로컬의 htdocs/ 디렉토리 이하를 test 서버의 homepage이름으로 지정된 디렉토리로 그대로 복사한다.
    test 서버에는 rsync 데몬이 동작중이어야 한다.

    2. 같은 시스템에서 (rsync 데몬 필요 없음)

    그러면 원래 하고자 했던 얘기인 같은 시스템에서 다른 파티션으로는 어떻게 할까?


    # rsync -avxH --delete /home/ /BACKUP/home
    building file list ... done   (파일이 많을 경우 목록 얻는데 시간이 걸림)
    ./
    truefeel/doc/cisco Router장애처리.doc
    ... 중략 ...
    truefeel/memo.txt
    truefeel/music -> /mnt/wind/music/ (심볼릭 링크)
    truefeel/memo-2003_09.txt => memo.txt (하드 링크)


    -x : 해당 파일시스템의 것만. 이를 테면 /usr 과 /usr/local이 다른 파티션으로 존재할 때
         /usr 를 지정할 경우 /usr/local은 복사하지 않음
    -H : Hard link까지 그대로 유지하면서 복사한다.
    --delete : dest 디렉토리에 source 디렉토리와 다른 파일이 이미 있다면 삭제한다.

    위 예는 /home/ 아래 파일시스템을 /BACKUP/home 디렉토리로 그대로 복사한다.
    이미 /BACKUP/home에 다른 파일이 존재하면 그건 삭제하여 완전히 동일하게 만든다.

    주의할 것은
    1) 압축하도록 하는 -z 옵션은
       동일시스템에서 복사할 때는 오히려 속도가 떨어지므로 사용하지 않는다.
    2) SRC부분에 지정하는 /home/ 와 /home는 분명 다르다.
       /home/ 일 때 -> /home/truefeel 은 /BACKUP/home/truefeel 로 백업
       /home  일 때 -> /home/truefeel 은 /BACKUP/home/home/truefeel 로 백업

    cron에 매일 새벽 4시 30분에 sync하도록 해보자.


    # crontab -e
    30 4 * * * /usr/bin/rsync -avxH --delete /home/ /BACKUP/home > /dev/null 2>&1


    4. 특정 파일이나 디렉토리를 제외하는 방법은 없을까?

    rsync에서는 --exclude=패턴--exclude-from=패턴파일명 옵션으로 제외할 파일을 지정할 수 있다.
    아래의 패턴 파일을 보자.


    ; 파일명 : backup.rsync_exclude
    ;
    ; 필요없는 웹브라우저 캐시 파일과 유즈넷 캐시 파일 제외
    **/Cache/**
    */.pan/*/cache/*
    ; 작업 파일 제외
    */temp/*
    */work/*
    **.o


    ';'나 '#'로 시작하는 줄은 주석이다.
    * (* 하나)는 일반적으로 알고 있는 모든 문자열로 생각하면 된다.
    ** (* 두 개)는 * 보다 강력한 확장 패턴으로 / 까지 포함된 모든 문자열이다.
    위 예에서 **/Cache/** 는 a/Cache/b/ 디렉토리, a/b/Cache/c/d/e/ 디렉토리 등이 모두 해당된다.
    그러나 .pan/*/cache/* 는 .pan/a/cache/ 디렉토리는 해당되지만 .pan/a/b/cache/ 디렉토리는
    해당되지 않는다.
    그러면 work/* 과 work/ 는 어떤 차이가 있을까?
    work/* 패턴은 work/ 이하의 파일이나 디렉토리는 복사하지는 않지만 DEST 영역에 work/ 디렉토리
    는 생성을 한다. work/ 패턴은 디렉토리 조차도 생성하지 않는다.

    --exclue-from= 옵션만 붙이고 실행하면 된다.

    # rsync -avxH --delete --exclude-from=backup.rsync_exclude /home/ /BACKUP/home


    * rsync관련 글 : http://coffeenix.net/doc/debianusers/seminar5/backup.txt
      커피닉스 카페 최근 글
    [12/05] 0DAY Music BEATPORT
    [12/05] 0DAY Music BEATPORT
    [10/20] Cross Compiler 깔
    [07/14] SSL АО
    [04/26] Re: 도스화면 원격조종 여부
    [04/25] 도스화면 원격조종 여부
    [10/30] Cshell에서 난수 설정
    [10/23] 공항철도주식회사 SE 구인 件
    [01/26] Re: wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/25] wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/11] 특정 안드로이드 WebView 버전에서 SSL 문제 (WebView 버그)
    [08/01] DNS forwarder (전달자) 서버를 통해서 쿼리하면 역방향을 받아오질 못합니다.
    [05/16] (주)후이즈 시스템엔지니어 (경력자) 모집
    [02/15] [AWS] Cloudfront edge 확인하기
    [01/20] Mobile Service/eCommerce 기업에서 Server / Java / PHP 개발자 구인
      New!   최근에 등록한 페이지
      KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
      오픈캐스케이드 캐드 (OpenCASCADE CAD)
      QCad for Windows --- GNU GPL (Free Software)
      The Hello World Collection
      IPMI를 활용한 리눅스 서버관리
      DNS 설정 검사
      nagiosgraph 설치 방법
      Slony-I 설치 방법 (postgresql replication tool)
      Qmail기반의 Anti spam 시스템 구축하기
      clusterssh

    [ 함께하는 사이트 ]




    운영진 : 좋은진호(truefeel), 야수(yasu), 범냉이, sCag
    2003년 8월 4일~