我需要每小时将几个日志文件传输到所有用户都可以访问的日志存储中,我使用 rsync 来执行此操作,但问题出现在日志文件轮换并自动压缩时,rsync 检测到有一个新文件并且它也传输了它,这意味着在目标服务器上我有:
example.log.2014-01-17--00
和
example.log.2014-01-17--00.gz
这是相同的日志文件,但是使用 gzip -9 压缩。
这是我的 rsync 行,它包含在脚本中:
rsync -rvzt --include "*/" --include "$pattern" --exclude "*" $directory [email protected]:/home/user/directory/$subdir/$basefilename
它由 crontab 每小时执行一次,并传输与包含我想要传输的路径和模式的文件中包括的 $pattern 和 $directory 匹配的所有文件。
所以我的问题是是否存在我尚未见过的 rsync 选项,或者是否有可能做到这一点以及如何做到。
提前致谢。
答案1
您是否考虑过使用 rsyslog 转发[1]?
此外,从 [2] 来看,添加--exclude '*.gz'
应该可以解决您的问题。为什么--exclude '*'
?我的理解是每个文件都被排除在同步之外。
[1]http://www.rsyslog.com/storing-and-forwarding-remote-messages/
[2]http://www.thegeekstuff.com/2011/01/rsync-exclude-files-and-folders/