Lsyncd 2.0.4:从同步中排除文件

我想阻止我的robots.txt文件同步到前端服务器。 这是我的/etc/lsyncd.conf文件:

settings = { logfile = "/tmp/lsyncd.log", statusFile = "/tmp/lsyncd.stat", statusInterval = 1, } sync{ default.rsync, source="/var/www/html/blog", target="sync:/var/www/html/blog", rsyncOpts="-ltus", excludeFrom="/var/www/html/blog/robots.txt", } 

/tmp/lsyncd.log告诉

 Normal: recursive startup rsync: /var/www/html/blog/ -> sync:/var/www/html/blog/ excluding HELLO WORLD Normal: Startup of '/var/www/html/blog/' finished. Normal: Calling rsync with filter-list of new/modified files/dirs /robots.txt / Normal: Finished a list = 0 

这个设置似乎没有解决。

我猜excludeFrom目录是相对于source目录; 因此, excludeFrom="/robots.txt"可能工作。

编辑:噢,我的上帝,忘记我上面写的。 excludeFrom是一个rsync参数,用于指定包含要排除的文件列表的文本文件,每行一个文件或一个模式。 所以,您的excludeFrom应该包含一个文件的path,该文件包含这个/var/www/html/blog/robots.txt/robots.txt

lsyncd的configuration参数rsyncOpts_extra使用rsync--exclude指令,具体取决于您使用的lsyncd版本。

根据https://axkibe.github.io/lsyncd/manual/config/layer4/

excludeFrom是FILENAME参数,从每个规则每行的文件加载排除规则

注意https://community.rackspace.com/general/f/34/t/3503

警告! 使用excludeFrom和一个文件时,请确保文件中没有空行 。 如果是这样,lsyncd将其视为“排除/”,然后将所有内容都排除在外。