问题标签 [parallel-ssh]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1011 浏览

python - Parallel-SSH - 如何在一段时间后关闭 ssh 通道?

好的,所以这个问题的答案可能只是“停止使用并行 ssh 并使用 netmiko/paramiko 编写自己的代码。另外,已经升级到 python 3。”

但这是我的问题:我正在使用parallel-ssh尝试一次访问多达 80 个设备。这些设备是出了名的不可靠,并且它们偶尔会在提供一两行输出后冻结。然后,parallel-ssh 代码挂了几个小时,让脚本运行,直到我杀死它。一个周末后,我跳到运行脚本的虚拟机上,看到一份工作被卡住了 52 小时。

我的第一个代码的相关部分,即挂起的部分:

接下来我尝试的是channel_timout选项,因为如果获得命令输出需要超过 4 分钟,那么我知道设备冻结了,我需要继续并稍后在脚本中循环它:

这个版本从来没有真正连接到任何东西。有什么建议吗?除了 channel_timeout 之外,我找不到任何东西来尝试在一定时间后终止 ssh 会话。

0 投票
3 回答
1115 浏览

python - 如何使用并行 ssh 执行“su”命令

我想使用parallel-ssh登录到两台主机并执行su命令。然后我想通过打印出来确认我是root用户whoami

代码:

结果:

显然,我希望输出中有根。我正在关注文档。

我尝试使用所有不同的行尾来代替,\n但没有任何改变。如何su使用 执行命令parallel-ssh

0 投票
2 回答
754 浏览

python-3.x - 如何远程执行和监控长时间运行的进程并在完成前查看输出

如何在远程机器上执行进程并在进程退出之前查看标准输出?ssh 是理想的,但仅在远程命令完成后才报告输出。

像这样的示例 python 脚本:

生成指示其进度的输出:

我想用 ssh 在远程机器上运行它:

此过程不会在几分钟或几小时内结束,我需要在该过程运行时对其进行监控。

在远程进程完成之前,如何获得 ssh 或类似的东西以远程运行命令并stdout在生成时向本地控制台报告?每行之后的输出会很有用。

0 投票
1 回答
701 浏览

python - 使用 pssh.clients 时 Python parallel-ssh run_command 不会超时

我有以下代码:

如果我的主机拥有所有有效的 IP,那么我会得到“输出”。但是,如果其中一个 IP 无效(不存在的主机),那么 run_command 将永远挂起。甚至尝试对 run_command 使用“use_pty=True”参数。

奇怪的是,如果我使用已弃用的方法pssh_client而不是客户端,如下所示:

它按预期超时。新的导入方式引入了一个错误,或者有一些新的方法可以正确指定超时。我宁愿使用推荐的方式而不是弃用的方式。但推荐的方式对我不起作用。有人知道我在这里做错了吗?

0 投票
0 回答
120 浏览

python - 带有 IPv6 的 ParallelSSHClient()

为 ParallelSSHClient 指定 IPv6 地址的正确方法是什么?

这里不多说: https ://parallel-ssh.readthedocs.io/en/latest/quickstart.html 我试过像 [xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx] 也没有方括号,我总是得到这个:

0 投票
0 回答
394 浏览

python-3.x - 如何在 Parallel-SSH 或 Paramiko 中手动输入凭据

我正在尝试创建一个脚本,它将在我的 1000 台 Cisco 设备上运行命令。设备型号为:Cisco Sx220 系列交换机软件,版本 1.1.4.1

问题是某些 Cisco 设备存在某种奇怪的行为。

当我尝试使用正确的凭据使用常规 SSH (PUTTY) 登录时,我们首先收到“身份验证失败”,1 秒后我再次收到用户密码提示,再次输入相同的凭据即可成功登录。

问题是,当我尝试使用我的脚本(使用 ParallelSSHClient)进行连接时,在收到身份验证失败消息后连接断开,并且无法再次输入凭据,因为它正在获取异常并终止程序。

我正在寻找一种方法来输入这些凭据手册,方法是连接到机器,获取身份验证失败消息并忽略它,识别当前提示在屏幕上显示用户或密码,然后手动发送。我在任何地方寻找这种程序,但没有任何运气。ParallelSSHClient 有这个功能吗?如果帕拉米科有的话,我愿意搬到帕拉米科。谢谢 :)

这是我得到的应计错误:

0 投票
0 回答
179 浏览

python-3.x - Python - Telnet 或 SSH 多个设备

我目前正在使用telnetlibparamiko连接到服务器并从中收集一些配置。收集 50 台服务器的配置大约需要 30 分钟。但现在我需要连接大约 50k 台服务器。因此,通过这种方法,这将花费更长的时间。

我已经阅读过,pssh但在我的情况下,我无法使用它,因为某些服务器响应速度很慢并且我无法连接到它们。任何人都可以建议任何替代方案来在短时间内完成这项工作吗?

0 投票
1 回答
285 浏览

python - Python:使用parallel-ssh将ssh命令发送到多个服务器,如果其中一个不可用,则会完全失败

我用这种方式:

我现在得到了什么:一个例外。

无法连接某些主机: (“连接到主机 '%s:%s' 时出错 - %s - 重试 %s/%s”, '192.168.100.161', 22, 'timed out', 1, 1)

我希望得到: 来自可用服务器的响应来自不可用服务器的错误

怎么实现啊各位?

0 投票
1 回答
420 浏览

python-3.x - Python Parallel SSH - 如何传递多个用户名和密码

我正在尝试使用 ParallelSSHClient 进行并行 SSH。

当我以 hosts = ['xxxx', 'yyyy'] ParallelSSHClient (hosts, 'user', 'pass') 运行时,它工作正常。但是如果 xxxx 和 yyyy 的用户名和密码不同怎么办?我还必须将用户名和密码作为列表正确传递。但如果我通过了,它就行不通了。

0 投票
1 回答
156 浏览

ssh - 带有输出流的并行 ssh (pssh)

我有 3 台服务器,我想从客户端并行地在所有服务器上运行命令,并在式传输时查看输出。

我曾尝试使用pssh但它仅在命令退出时显示输出。但我想要的是客户端标准输出上所有服务器的输出,因为它在退出之前会产生输出。

例如,当我在所有服务器上运行“ping google.com”时,只有当我按下 Ctrl+C 时才会得到输出,如下所示:

当我按下 Ctrl+C 时输出

我的命令如下所示:

如何在 ping 时查看所有 3 台服务器的 ping 输出?