流式传输远程日志文件的有效方法

pit*_*ker 1 java remoting logging

我正在寻找一种方法来读取远程unix主机上快速增长的日志文件.
日志文件偶尔会获得一个logswitch(例如,再次从0字节开始).我无法直接在远程主机上处理日志文件的原因是处理器对主机施加了太多负载,这是不可能发生的.所以我需要在两个不同的主机上进行处理和读取.

由于我不在Java世界的家中,我想询问有关如何最好地实现这一目标的建议.

我的想法到目前为止:
让本地日志文件处理器(localhost)scp一个logfilereader(java二进制文件)到远程主机并启动它(通过本地日志文件处理器启动的ssh连接).然后,logfilereader开始读取/拖尾日志文件并将其作为TCP流提供(然后可以由本地日志文件处理器读取).

我很确定有更优雅的javastyle方法.谢谢你的任何提示.

Vin*_*ers 7

如果您可以在远程主机上运行ssh,那么您可以使用

ssh <remote host> "tail -f <remote log file name>" > <local log file name>
Run Code Online (Sandbox Code Playgroud)

这会将写入远程日志文件名的任何内容重定向到本地文件名.如果远程文件被擦除,则会收到一条消息,指出远程文件已被截断.