이 rsync를 데몬으로 실행하는 방법(파일이 변경될 때만 트리거됨)

이 rsync를 데몬으로 실행하는 방법(파일이 변경될 때만 트리거됨)

여러 폴더가 있고 이제 이 예제에 표시된 대로 rsync에 cron을 사용합니다.

rsync -aq source1/  user1@machine1:/some/destination1
rsync -aq source2/  user2@machine2:/some/destination2
... and so on

모든 것이 잘 작동하지만 루트에 많은 crontab이 있고 대부분의 경우 아무 것도 변경되지 않으며 프로세서만 차단합니다.

소스의 파일이 변경될 때만 rsync 프로세스를 시작하고 싶습니다.

그래서 rsync.conf 파일에 대한 설명서를 읽었지만 그것이 어떻게 작동하는지 이해하지 못합니다. 내 현재 rsync.conf 파일은 다음과 같습니다.

lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid

&merge /etc/rsyncd.d
&include /etc/rsyncd.d

그리고 /etc/rsyncd.d 폴더는 비어 있습니다.

rsync를 데몬으로 실행하고 파일이 변경될 때 동기화하도록 구성을 어떻게 작성해야 합니까? -a 옵션은 diff만 보내는 것으로 알고 있으며, 뭔가 변경되면 데몬이 실행 중인 경우 프로세서를 저장할 수 있는지 확실하지 않습니다.

답변1

rsync 데몬은 파일 시스템을 모니터링하지 않으며 단지 리스너일 뿐입니다. 다른 rsync 작업이 시작되고 연결되어 파일을 이동할 때까지 기다립니다.

귀하의 목적을 위해서는 변경 사항을 모니터링하고(inotify) 해당 정보를 사용하여 rsync 프로세스를 시작하는 것이 필요합니다. 이러한 다른 답변은 좋은 출발점이 될 수 있습니다.

많은 수의 파일에 대한 inotify 및 rsync

https://serverfault.com/questions/688656/how-do- 올바르게-sync-millions-of-files-with-rsync-and-inotify

관련 정보