CentOS 7.x unison 양방향 파일동기화
LSYNCD 데몬을 두 서버 모두 기동시키면 lsyncd 로도 양방향 파일동기화가 가능하지만 delete = true 로 옵션을 걸었을 때 문제가 있습니다.
lsyncd 데몬이 한 군데가 멈추었다던가, 두 서버 중 한 서버가 기타 여러 이유로 싱크가 잠시 중단이 되었을 때는 의도하지 않게 파일이 삭제되는 위험성이 있습니다.
메인서버 -> 백업서버 이런 단방향은 아무런 문제가 없습니다. 하지만 로드밸런싱으로 구축된 서버라면 문제가 생길 수 있다는 겁니다.
예를 들어 백업서버가 재부팅되고 있는 사이에 메인서버에 파일이 업로드가 되었다면 이 때 문제가 발생합니다.
백업서버 재부팅이 되면 lsyncd 데몬이 실행이 되겠지요. 이 때 파일 싱크가 이루어 지게 되는데 메인서버에는 있지만 백업서버에는 파일이 없는 파일이 있습니다. 이 파일은 없는 파일이기 때문에 메인서버의 파일까지 삭제가 되게 됩니다.
그렇다고 delete 옵션을 false 를 주게 되면 위 문제는 생기지 않겠지만 불필요한 파일을 계속 가지고 있어야 한다는 문제가 있습니다.
이런 경우에 lsyncd 유틸도 사용하면서 unison 을 보조적으로 크론을 이용해서 하루에 한번 동기화를 하게되면 위 문제가 해결이 가능합니다.
▶ unison 설치
# yum install unison
서버 양쪽에 모두 설치를 하여야 합니다.
한쪽만 설치를 하게 되면 아래와 같은 에러가 발생합니다.
Contacting server...
bash: unison: command not found
Fatal error: Lost connection with the server
▶ lsyncd 설정
settings {
logfile="/var/log/lsyncd/lsyncd.log",
statusFile="/var/log/lsyncd/lsyncd-status.log"
}
sync {
default.rsyncssh,
source="/var/www/html",
host="192.168.1.3", -- 메인서버, 백업서버 다르게 설정
targetdir="/var/www/html",
delete = false,
rsync = {
archive = true,
compress = false,
verbose = false
}
}
서버 양쪽에 모두 설정을 합니다.
자세한 lsyncd 설정방법은 https://ivps.tistory.com/150 여기를 참고하세요.
▶ unison 환경설정 ( /root/.unison/default.prf )
# Unison preferences file
root = /var/www/html
root = ssh://root@192.168.1.3//var/www/html
ignore = Path test1
ignore = Path test2
ignore = Path test3
batch = true
times = true
logfile = /var/log/unison.log
/root/.unison 폴더가 없다면 unison 을 한번 실행해주면 폴더가 생깁니다.
첫번째 root 는 로컬의 디렉토리
두번째 root 는 원격지의 디렉토리 ( 포트가 22번이 아니라면 아이피 뒤에 :포트번호를 적어주면 됩니다. )
ignore 는 제외할 폴더를 나열하며 됩니다. /var/www/html/test1 이라면 test1 만 적어주면 됩니다.
▶ cron 등록
# echo "00 03 * * * root /usr/bin/unison" > /etc/cron.d/unison
# chmod 600 /etc/cron.d/unison
동작시간은 자신에 맞게 수정하면 됩니다.
크론은 두 서버중에 한군데만 등록하면 됩니다.
'LINUX' 카테고리의 다른 글
리눅스 특정 계정만 su 명령어 허용하기 (0) | 2017.03.28 |
---|---|
리눅스 UNISON 환경설정 (0) | 2017.03.27 |
CentOS 7.x logwatch 로그분석 알림 유틸 (0) | 2017.03.24 |
MySQL mysqldump 전용 계정 만들기 (0) | 2017.03.23 |
리눅스 SSH 특정 계정만 접속 허용하기 (0) | 2017.03.23 |