我必须几乎实时地从远程 Solaris 机器收集日志。
收集需要无代理,这意味着我无法更改生成日志的机器上的任何配置。
我正在考虑使用 sftp 定期下载文件,但我不想下载整个文件,我只想下载发生变化的部分。
所以我想我会记录文件的大小。下载文件。下次,我会从上次下载的位置开始下载。但现在的问题是如何处理文件轮换。在下载之前,我会记下上次修改的时间,如果当前文件的大小小于上次下载的位置,我将从 .0 文件开始下载。
另一个问题是,我需要将日志上传到数据库服务器。所以我需要一种只下载完整条目的方法。
如果有人有任何建议,请告诉我,或者如果您知道我应该使用的程序,请向我指出。
答案1
尝试使用 sshfs。也许有帮助。
答案2
设置密钥(没有密码,因此您可以将其放入脚本中),然后通过 SSH 链接运行 rsync。脚本可以为您执行此操作,从 cron 运行。请参阅http://troy.jdmz.net/rsync/index.html
rsync 将只传输文件中已更改的块。当它报告不再传输任何块时,您就知道您已获得整个文件 - 因此它已准备好发送到您的数据库服务器。