애드센스본문상단

 


lftp로 백업/미러링 하기  - 리눅스/안드로이드

자료를 통채로 A 서버에서 B 서버로 옮겨야 할 일(미러링)이 생겨서

처음에는 rsync를 사용하려다가 A 서버 쪽에 rsync 설정을 해줘야 하는 불편함이 있어서 찾다보니

lftp 라는 command-line ftp 프로그램이 있다는 것을 발견하였다.

별다른 설정도 필요치 않고 대부분의 Redhat 기반 linux에 설치가 되어있다고 한다.

다른 ftp 클라이언트는 어떤지 모르겠는데 lftp의 경우 -e 옵션으로 세미콜론으로 구분된 명령을 실행시킬 수 있다.

예를 들어

  lftp -u 사용자 sftp://주소 -e "cd /home/target_dir; put /home/source_dir/data.txt; exit;"

의 형식이다.

풀어서 적어보면

  sftp 사용자@주소
  cd /home/target_dir
  put /home/source_dir/data.txt
  exit

이렇게 될 것이다.

그렇다면 미러링은 어떻게 해야할까.

미러링에 대해 살펴보기 전에 일단 유용하게 사용되는 옵션을 살펴보면 아래와 같다.

  --delete                  remote site에 없는 파일 삭제
  --only-existing          target에 존재하는 파일만 다운로드
  --only-newer           새로운 파일만 다운로드
  --no-recursion          subdirectory는 무시
  --reverse                역방향으로 mirror (get이 아닌 put)

위의 옵션을 사용한 미러링 명령은 아래와 같다.

  lftp -u 사용자 stfp://주소 (-p포트) -e "mirror --only-newer /home/source_dir /home/target_dir"


이 명령은 A 서버를 미러링하고자 하는 B 서버에서 실행 할 때 사용할 수 있다.

A 서버에서 B 서버로 미러링을 할 때는 아래와 같이 reverse 옵션을 주면 된다.

  lftp -u 사용자 stfp://주소 (-p포트) -e "mirror --reverse --only-newer /home/source_dir /home/target_dir"

하지만 직접 사용해 본 결과 한가지 단점(?)이 있는데 symbolic link는 미러링되지 않는 다는 점이다.

당연한건가?


출처
http://docs.cena.co.kr/?mid=textyle&document_srl=13497
http://linux.overshoot.tv/wiki/networking/lftp_backup_and_mirroring
http://en.wikipedia.org/wiki/Lftp


덧글

  • 꽃선생 2015/06/01 09:43 # 삭제 답글

    좋은 글 감사합니다.

    출처 올리고 퍼가겠습니다.

    문제 발생시 바로 삭제하겠습니다.
댓글 입력 영역


애드센스본문측면

통계 위젯 (화이트)

13
21
332138

Analytics