带有输出流的并行 ssh (pssh)
Posted
技术标签:
【中文标题】带有输出流的并行 ssh (pssh)【英文标题】:parallel ssh (pssh) with output stream 【发布时间】:2021-02-26 15:56:37 【问题描述】:我有 3 台服务器,我想从客户端并行地在所有服务器上运行命令,并查看输出 流。
我曾尝试使用 pssh,但它仅在命令退出时才显示输出。但我想要的是客户端标准输出上所有服务器的输出,因为它在退出之前会产生输出。
例如,当我在所有服务器上运行“ping google.com”时,只有当我按下 Ctrl+C 时才会得到输出:
我的命令如下所示:
pssh -h server_list -l userName -i pemFile.pem 'ping google.com'
在 ping 时如何查看所有 3 台服务器的 ping 输出?
【问题讨论】:
【参考方案1】:我试图达到同样的效果,对我来说最好的方法是指定一个输出目录,然后按照输出文件上的流,如下所示:
我们添加-o /tmp/out -t 0
这样我们就可以得到每个主机的输出到指定的目录,并且我们没有得到任何超时。
pssh -h server_list -l userName -i pemFile.pem -o /tmp/out -t 0 'ping google.com'
让它继续运行,然后跟随潮流。假设您的 server_list 中有 host1、host2、host3 和 host4,您可以执行以下操作:
tail -f /tmp/out/host1,2,3,4
【讨论】:
我认为我们可能有不同的 pssh 版本,所以请告诉我这些选项是否适合您,因为-i
对我来说是 --inline-stdout
以上是关于带有输出流的并行 ssh (pssh)的主要内容,如果未能解决你的问题,请参考以下文章
IO流23 - 字节流 - 字节输出流的缓冲流以及字节输入流的缓冲流BufferedOutputStream&BufferedInputStream