-
lftp로 백업/미러링 하기Flower in my ops/Linux 2015. 6. 1. 09:49
[출처]태효의 세상사는 이야기 http://taehyo.egloos.com/4264539#comment_4264539
자료를 통채로 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