我有多个文件夹,现在使用 cron 进行 rsync,如本例所示。
rsync -aq source1/ user1@machine1:/some/destination1
rsync -aq source2/ user2@machine2:/some/destination2
... and so on
一切都运行良好,但我有很多 crontab 作为 root,大多数时候没有任何变化,我只是阻塞处理器。
我想仅当源上某处的文件发生更改时才启动 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 选项只是发送差异,并且当某些内容发生变化时,我不确定如果守护进程正在运行它,我是否可以保存处理器。
答案1
rsync 守护进程不监视文件系统,它只是一个监听器。它等待其他 rsync 作业启动并连接以移动文件。
出于您的目的,您需要一些东西来监视更改(la inotify)并使用该信息来启动 rsync 过程。这些其他答案可能是很好的起点。