답변:
직접 사용하지 않았지만 최근에 읽었습니다. 라는 데몬 lsyncd
이 있습니다. 필요한 것을 정확하게 수행한다고 가정합니다.
여기 에 대해 더 읽어보기
lsyncd
용도 inotify
및은 FS 수준에서 가장 빠른해야한다. github.com/axkibe/lsyncd 에서 자세히 알아보십시오 . 해당 페이지에서 : Lsyncd는 로컬 디렉토리 트리 이벤트 모니터 인터페이스 (inotify 또는 fsevents)를 감시합니다. 몇 초 동안 이벤트를 집계 및 결합한 다음 하나 이상의 프로세스를 생성하여 변경 내용을 동기화합니다. 기본적으로 이것은 rsync입니다. 따라서 Lsyncd는 새로운 파일 시스템이나 블록 장치를 필요로하지 않고 비교적 쉽게 설치할 수 있고 로컬 파일 시스템 성능을 저해하지 않는 경량 라이브 미러 솔루션입니다.
inotify
로 구성된 인터페이스를 제공하십시오 .
inotifywait
이 명령은 단순히 inotify 이벤트를 차단하여 쉘 스크립트에 사용하기에 적합합니다. 파일 및 디렉토리 세트를 볼 수 있으며 전체 디렉토리 트리를 재귀 적으로 볼 수 있습니다.
inotifywatch
이 명령은 파일 시스템 사용 통계를 수집하고 각 inotify 이벤트의 수를 출력합니다.
lsyncd
여러 서버간에 파일을 실시간으로 동기화하기 위한 유용한 도구가 있습니다 . 여기서는 두 대의 서버로 시도했습니다.
호스트 : Server1 및 Server2
사용되는 OS : CentOS 7
두 서버 모두에 아래 패키지를 설치하십시오.
# yum install -y epel-release
# yum -y install lua lua-devel pkgconfig gcc asciidoc lsyncd
두 서버 모두에서 ssh-key를 생성하고 authorized_keys
파일에 추가 하십시오. [server1의 authorized_keys
공개 키를 server2에 추가하고 server2의 공개 키를 server1의 authorized_keys
파일에 추가]
줄의 시작 부분을 /etc/lsyncd.conf
사용하여 기본 구성을 열고 주석 처리하고 --
아래 구성을 파일에 추가하십시오.
settings {
logfile = "/var/log/lsyncd/lsyncd.log",
delay = 1
}
sync {
default.rsync,
source="/home/test/public_html/",
target="server2:/home/test/public_html/",
rsync = {
compress = true,
acls = true,
verbose = true,
owner = true,
group = true,
perms = true,
rsh = "/usr/bin/ssh -p 22 -o StrictHostKeyChecking=no"
}
}
target
매개 변수 에서 대상 IP를 변경하십시오 .
delay
요구 사항에 따라 매개 변수를 변경할 수 있습니다 . 여기서 1 초로 설정됩니다.
이제 로그 디렉토리를 작성하십시오.
# mkdir -p /var/log/lsyncd
활성화 lsyncd
자동으로 시작하는 서비스를.
# systemctl enable lsyncd.service
서비스를 시작하십시오.
# systemctl start lsyncd.service
Server1과 동일한 구성을 따르고 target
IP를 변경하십시오 .
이제 동기화가 설정되었습니다.
당신은 활동을 확인할 수 있습니다 tailf /var/log/lsyncd/lsyncd.log
그의 제안에 대해 MelBurslan에게 감사드립니다.
"SIOS Protection Suite for Linux"는 AWS에서이를 제공 할 수 있습니다.