개발/Server

[lsyncd] CentOS 서버간 파일 동기화 Package 설치

소금집사 2024. 1. 8. 11:12
반응형

1. 설치 (Source Server)

#yum install epel-release –y
#yum install lsyncd lua rsync

 

Source Server에서 Target Server로 ssh 접속이 패스워드 없이 가능해야하도록 구성한다.

[Source Server]
ssh-keygen -t dsa
chmod 755 /root/.ssh
chmod 755 .ssh
 
scp -P 31622 /root/.ssh/id_dsa.pub root@TargetServer_IP:/root/.ssh/authorized_keys
 
[Target Server]
sudo chmod 600 ~/.ssh/authorized_keys
 
 
아래 명령어 실행해서 Source Server에서 Target Server로 인증 없이 로그인되는지 확인
ssh -p 31622 {userName}@{TargetServer_IP}

 

 

2. lsnycd.conf 작성

#vi /etc/lsyncd.conf
settings {
           logfile= "/var/log/lsyncd.log",
           statusFile= "/var/log/lsyncd-status.log"
}
  
sync {
           default.rsyncssh,
           source= "/data",
           host= "userName@TargetServer_IP",
           targetdir = "/data",
           delay=1,
           delete=false,
           rsync = {
                archive = true,
                compress = false,
                verbose = false
           },
           ssh = {
                port = 31622
           },
           exclude = {"*.log", "*.ext"}
  
}
 
 
-- 다수의 디렉토리 공유 시 sync 설정값 추가
sync {
           default.rsyncssh,
           source= "/data",
           host= "userName@TargetServer_IP",
           targetdir = "/data",
           delay=1,
           delete=false,
           rsync = {
                archive = true,
                compress = false,
                verbose = false
           },
           ssh = {
                port = 31622
           },
           exclude = {"*.log", "*.ext"}
  
}

[settings]

logfile/statusFile : lsyncd 로그파일 저장 경로

 

[sync]

source : Source Server의 공유 할 디렉토리

host : Target Server의 HOST 정보 ( root일경우 userName 생략가능 )

targetdir : Target Server의 공유 받을 디렉토리

deley : 동기화 딜레이 시간

delete : 삭제파일 동기화 여부

ssh : ssh 포트정보 ( 생략 시 default값인 22로 ssh 통신 )

exclude : 파일 동기화 시 예외파일 설정

 

 

3. 실행

#systemctl start lsyncd
#systemctl enable lsyncd
반응형