커피닉스, 시스템 엔지니어의 쉼터
  리눅스에서 솔라리스 DAT 장치로 리모트 백업 작성일 : 2003/08/09 00:19
 
  • 글쓴이 : 좋은진호 ( http://coffeenix.net/ )
  • 조회수 : 11227
     
    작성자 : 좋은진호(truefeel, http://coffeenix.net/ )
    작성일 : 2000.6.15 (KLDP에 올렸던 글)
    이글이 요즘에 의미가 있을지 의문이네요. 아래글에서 얘기한 rsh보다는 ssh를 쓰시길.


      
    리눅스박스에서 솔라리스 DAT로 리모트 백업하는 방법을 간단히 소개하겠습니다.
    (rsh와 dump를 이용하는 방법)
      
    (1) 솔라리스 쪽에서 할 것
       (solaris.truefeel.co.kr, IP는 123.123.123.1 이라고 가정)
    - 인터넷 수퍼데몬(/etc/inetd.conf)에서 rshd 데몬을 열어둔다.
    - root에 .rhosts 파일을 만든다.
    - /etc/hosts 파일에 리눅스 박스의 호스트명을 등록한다.
      
    (2) 리눅스박스에서 할 것
      (linux.truefeel.co.kr, IP는 123.123.123.2 라고 가정)
    - rsh 명령과 dump 명령
      
    -------------------------------------------------------------------
    실전에 들어가자!

    (1) 솔라리스에서 설정(rshd 데몬을 열어 리눅스의 rsh 명령을 받아들인다.)

    1. /etc/inetd.conf에서 rshd 데몬을 열어둔다.

    shell   stream  tcp     nowait  root    /usr/sbin/in.rshd       in.rshd

    2. inetd 데몬을 재실행한다.

    ~# kill -HUP `ps -ef|grep inetd|grep -v grep|awk '{print $2}'`

    또는 직접 ps 로 확인 후 kill -HUP

    3. 리눅스박스에서 rsh 명령으로 접근가능하도록 root홈에 .rhosts를
        등록한다. DAT 장치는 root(솔라리스의 root)가 접근하므로 root의
        .rhosts에 등록하는 것은 당연하겠죠.

    linux.truefeel.co.kr root

    4. /etc/hosts 에 리눅스 박스의 호스트명을 추가한다.

    (주) 이상하게도 /etc/hosts에 리눅스박스의 호스명을 넣지 않으면 리눅스쪽
    에서 rsh 명령을 할 때 'permission denied'라는 메시지와 함께 종료되버리더군요.
    솔라리스끼리 remote backup할 때는 /etc/hosts와 무관하게 잘 되구요.

    123.123.123.2 linux.truefeel.co.kr linux

    솔라리스 쪽의 준비는 모두 끝났고 백업 테잎을 넣어둔다.

    (2) 리눅스에서 rsh, dump 실행

    1. 백업 테잎을 감는다.
        (solaris는 솔라리스 서버명, /dev/rmt/0는 DAT 장치명)
      ~# rsh -l root solaris mt -f /dev/rmt/0 rewind

    2. 이제 백업을 시작한다. 다음 명령은 /usr 파티션을 백업받는 예이다.

      ~# dump 0acuf root@solaris:/dev/rmt/0n /usr
      DUMP: Date of this level 0 dump: Mon Jun 5 15:56:29 2000
      DUMP: Date of last level 0 dump: the epoch
      DUMP: Dumping /dev/hda1 (/) to /dev/rmt/0n on host root@solaris
      DUMP: mapping (Pass I) [regular files]
      DUMP: mapping (Pass II) [directories]
      DUMP: estimated 1056025 tape blocks.
      DUMP: Volume 1 started at: Mon Jun 5 15:57:36 2000
      DUMP: dumping (Pass III) [directories]
      DUMP: dumping (Pass IV) [regular files]
      DUMP: 2.57% done, finished in 3:09
      DUMP: 6.90% done, finished in 2:14
      DUMP: 11.28% done, finished in 1:57
      DUMP: 15.66% done, finished in 1:47
      DUMP: 20.08% done, finished in 1:39
      ...

    root@solaris:/dev/rmt/0n 는 리모트의 솔라리스 DAT 장치를 의미한다.
    0n는 rewind하지 않는다는 말이다. dump에 대한 자세한 것은 man page를
    보기 바란다.
    (참고 : GNU tar 또한 리모트 백업을 지원한다.)

    정상적으로 백업을 마쳤다면, /etc/dumpdates 에 결과가 남는다.

    ~# cat /etc/dumpdates
    /dev/hda1        0 Mon Jun 5 15:56:29 2000

    3. 테잎을 뺀다.

    ~# rsh -l root solaris mt off

    네트웍을 통해서 백업을 받게 되므로 당연히 백업 시간이 길어진다.
    저희 경우 10MBPS 네트웍에서 초당 150KB/s 전송속도로 1GB 정도의 용량을
    약 2시간동안 dump를 받았다. 무지 느리죠? 네트웍 상태에 따라 달라지겠죠.

    -----------------------------------------------------------
    리눅스 쪽에서 백업 스크립트를 만들면,

    #!/bin/sh
    #
    # 시스템전체 백업
    #

    # 리모트 서버 설정(ID, 서버명, 리모트 DAT 장치)
    REMOTE_ID="root"
    REMOTE_HOST="solaris"
    DAT_DEVICE="$REMOTE_ID@$REMOTE_HOST:/dev/rmt/0n"

    # 백업 파티션 및 결과 저장 파일
    BACKUP="/usr"
    RESULT_FILE="$HOME/backup_result"

    # 1. 테잎을 감는다.
    DATE_START=`date`
    rsh -l $REMOTE_ID $REMOTE_HOST mt -f /dev/rmt/0 rewind; sleep 3
      
    # 2. 백업 시작
    dump 0acuf $DAT_DEVICE /usr; sleep 3
      
    # 3. 백업 테잎을 감은 후 꺼낸다.
    rsh -l $REMOTE_ID $REMOTE_HOST mt -f /dev/rmt/0 rewind
    rsh -l $REMOTE_ID $REMOTE_HOST mt off
      
    DATE_END=`date`
      
    # 3. 백업 결과 저장
    echo "백업 파티션 : $BACKUP"
    echo "백업 시  작 : $DATE_START"
    echo "백업 종  료 : $DATE_END"

    echo "백업 파티션 : $BACKUP"     >> $RESULT_FILE
    echo "백업 시  작 : $DATE_START" >> $RESULT_FILE
    echo "백업 종  료 : $DATE_END"   >> $RESULT_FILE


    커피닉스, 시스템 엔지니어의 쉼터 / URL : http://coffeenix.net/board_view.php?bd_code=18