테스트 사이트 - 개발 중인 베타 버전입니다

rsync, lsyncd 를 이용한 서버 동기화

https://www.youtube.com/watch?v=S0UTSQsmCc4

 

 

SOURCE 서버에 다음과 같이 설치합니다.

 

# ssh-keygen

# cat /root/.ssh/id_rsa.pub

ssh-rsa AAAAB3Nz..........OGyCkT root@ip-172-31-41-225.ap-northeast-2.compute.internal

위의 내용을 복사하여 타겟 서버의 /root/.ssh/authorized_keys 에 추가합니다.

 

 

TARGET 서버에 다음과 같이 복사합니다.

# vi /root/.ssh/authorized_keys

아까 소스 서버에서 복사한 키를 하단에 추가로 붙여넣기 합니다.
(기존에 파일이 있다면 이 코드를 추가합니다.)

ssh-rsa AAAAB3Nz..........OGyCkT root@ip-172-31-41-225.ap-northeast-2.compute.internal

 

 

# ssh-keyscan -t rsa 255.1.2.3 > /root/.ssh/known_hosts

(255.1.2.3 은 타겟서버아이피)

 

# yum install epel-release

# yum install lsyncd

# vi /etc/lsyncd.conf

 

-- sync{default.rsyncssh, source="/var/www/html", host="localhost", targetdir="/tmp/htmlcopy/"}

settings {
     logfile = "/var/log/lsyncd/lsyncd.log",
     statusFile = "/var/log/lsyncd/lsyncd-status.log"
}

sync {
    default.rsyncssh,
    source="/home/ec2-user", -- 소스 서버 디렉토리
    host="255.1.2.3", -- 타겟 서버 아이피 or 도메인
    targetdir="/home/ec2-user", -- 타겟 서버 디렉토리
    delete=true, -- 삭제시 타겟 서버에 반영하기(동기화 하기)
    delay=1, -- 1초
    rsync={
        archive=true -- 사용자와 퍼미션 동기화 하기
    }
}

 

 

설정 파일이 이상 있는지 확인하기

# lsyncd /etc/lsyncd.conf

08:05:08 Normal: --- Startup, daemonizing ---

 

위와 같이 정상 이라면

# systemctl start lsyncd

 

로그 확인하기

# tail -f /var/log/lsyncd/lsyncd.log

 

 

위와 같이 설정한후

소스 서버의 /home/ec2-user 에 파일이나 디렉토리를 생성(삭제)하면 

타겟 서버의 /home/ec2-user 에 동기화 됩니다.

 

 

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 9개

시간이 되면 동영상을 만들어 올리겠습니다.
요즘 서버 이전때문에
고생이 많으시네요 ㅠㅠ
고생이라뇨~?
배우는 재미가 쏠쏠합니다. ㅎ
좋은 정보 알아갑니다. 이제 파일도 실시간 백업이 되는구만요. ^^
네 거의 실시간이라고 보시면 됩니다.
좋은정보 감사합니다.
파일수정도 실시간 반영이 되나요??
아니면 생성 및 삭제만 반영이 되나요?
직접 테스트 해보진 않았지만 수정도 가능할겁니다.
혹시 테스트 해보실 것이라면 결과 좀 알려주세요.
각 서버의 사양이 상이해도 상관없는가요?

게시판 목록

개발자팁

개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.
글쓰기