是否可以/如何创建实时远程日志文件的本地副本以供观看/拖尾?

时间:2011-06-19 18:56:52

标签: linux redirect ssh logging stdout

方案: 我可以使用ssh和tail在远程Unix机器上查看日志,但我无法安装软件。我想使用远程机器上没有的多线程或其他日志查看器来查看日志文件。当然,如果我能找到一种方法来创建日志的实时本地副本,我可以在本地计算机上使用我想要的软件。

问题: 是否有可能做一些事情,比如将ssh客户端的输出重定向到一个文件用于此目的,还是有另一种方法来实现这个目标?

2 个答案:

答案 0 :(得分:2)

使用-l选项:

  

<强> -l command
  在窗口中执行的命令。参数是命令。如果外部命令需要参数,请不要忘记使用“!”(例如-l "ping host")。

例如

$ multitail -l 'ssh host1 tail -f log1' -l 'ssh host2 tail -f log2'
但是,

Multitail似乎不支持bash process substitution

答案 1 :(得分:0)

是的,你可以使用netcat来做到这一点。请注意,如果您未将其合并到链中,则日志文件将通过网络以未加密方式发送,这可能会对某些日志文件造成安全风险。

这个想法是你使用netcat,它基本上像网络管道一样工作。

1。在保存日志文件的计算机上,执行:

tail -f <logfile> | nc -l -p <port-number>

2。在想要进一步处理文件的计算机上,执行以下操作:

nc <first machine> <port-number> | <your file processor, e.g. multitail>

或者您也可以使用'&gt;'写入目标计算机上的文件然后在该文件上使用multitail。 您可以选择端口号,大于1024的16位数。