ssh - 带有输出流的并行 ssh (pssh)
问题描述
我有 3 台服务器,我想从客户端并行地在所有服务器上运行命令,并在流式传输时查看输出。
我曾尝试使用pssh但它仅在命令退出时显示输出。但我想要的是客户端标准输出上所有服务器的输出,因为它在退出之前会产生输出。
例如,当我在所有服务器上运行“ping google.com”时,只有当我按下 Ctrl+C 时才会得到输出,如下所示:
我的命令如下所示:
pssh -h server_list -l userName -i pemFile.pem 'ping google.com'
如何在 ping 时查看所有 3 台服务器的 ping 输出?
解决方案
我试图达到同样的效果,对我来说最好的方法是指定一个输出目录,然后按照输出文件上的流,如下所示:
我们添加-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/host{1,2,3,4}
推荐阅读
- python - 为什么加载数据集“.load_data()”时python会失败
- karate - 在我的端到端自动化的大部分部分中寻找使用空手道框架的解决方案
- javascript - 在服务器和浏览器上使用 Macchiato 框架的苹果酒
- python - 只需键入 python nameofthescript.py 在 Windows 10 cmd 上运行 python 脚本
- .net-core - dotnet core 3 未在 IIS 上读取 X-FORWARDED-HOST
- c# - 为什么 ExpandoObject 比 Dictionary 慢得多?
- java - 如何设置 IntelliJ IDEA 以便多模块 Maven 项目可以存储为单独的 Git 存储库但“导入”到 IntelliJ 项目中
- node.js - 尝试连接到 node.js 服务器(未托管在 localhost 上)时如何修复 ERR_CERT_COMMON_NAME_INVALID?
- matplotlib - 在终端中下载 mplfinance 后,Matplotlib.finance 没有响应。错误:没有名为“matplotlib.finance”的模块
- wordpress - 在 Wordpress 中的第一条评论之前添加文本