この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

関連情報