我有以下代码:
from pssh.clients import ParallelSSHClient
#-------------------------------------------------
hosts = [ IP1, IP2, ... IPn]
host_config = { dict containing userid & passwd for each host }
clients = ParallelSSHClient(hosts, host_config=host_config,
num_retries=1, timeout=3)
output = clients.run_command("ls", stop_on_errors=False, timeout=3)
print output
如果我的主机拥有所有有效的 IP,那么我会得到“输出”。但是,如果其中一个 IP 无效(不存在的主机),那么 run_command 将永远挂起。甚至尝试对 run_command 使用“use_pty=True”参数。
奇怪的是,如果我使用已弃用的方法pssh_client而不是客户端,如下所示:
from pssh.pssh_client import ParallelSSHClient
它按预期超时。新的导入方式引入了一个错误,或者有一些新的方法可以正确指定超时。我宁愿使用推荐的方式而不是弃用的方式。但推荐的方式对我不起作用。有人知道我在这里做错了吗?