是否可能/如何创建实时远程日志文件的本地副本以进行观看/跟踪?

发布于 2024-11-16 07:39:13 字数 225 浏览 3 评论 0原文

设想: 我可以使用 ssh 和 tail 查看远程 Unix 机器上的日志,但无法安装软件。我想使用诸如 multitail 或其他日志查看器之类的东西来观看日志文件,这些查看器在远程计算机上不可用。当然,如果我能找到一种方法来创建正在写入的日志的实时本地副本,我就可以在本地计算机上使用我想要的任何软件。

问题: 为此目的是否可以执行诸如将 ssh 客户端的输出重定向到文件之类的操作,或者是否有其他方法来实现此目标?

Scenario:
I can watch logs on the remote Unix machine using ssh and tail but I cannot install software. I want to use something like multitail or other log viewer which is not available on the remote machine to watch the log files. Of course, if I could find a way to create live local copies of the logs as they are being written, I can use what ever software I want on the local machine.

Question:
Would it be possible to do something like re-direct the output of the ssh client to a file for this purpose or is there another way to accomplish this goal?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

紧拥背影 2024-11-23 07:39:13

使用 -l 选项:

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

例如,

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

Multitail 似乎不支持 bash 进程替换

Use the -l option:

-l command
Command to execute in a window. Parameter is the command. Do not forget to use "'s if the external command needs parameters! (e.g. -l "ping host").

For example

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

Multitail doesn't seem to support bash process substitution, however.

与君绝 2024-11-23 07:39:13

是的,您可以使用 netcat 来完成此操作。请注意,如果您不将其合并到链中,日志文件将通过网络以未加密的方式发送,这对于某些日志文件可能存在安全风险。

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

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

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

2. 在想要进一步处理该文件的计算机上,执行:

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

或者您也可以写入文件在目标机器上使用“>”然后在该文件上使用 multitail。
端口号由您选择,大于1024的16位数字。

Yes, you can do this by using netcat. Note that if you do not incorporate it into the chain, the log file will be sent over the network unencrypted, which can be a security risk for some log files.

The idea is that you use netcat, which basically works like a pipe over the network.

1. On the machine that holds the log file, do:

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

2. On the machine that wants to further process the file, do:

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

Or you can also write to a file on the target machine with '>' and then use multitail on that file.
The port number is to be chosen by you, a 16bit number larger than 1024.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文