ParallelSSHClient()没有运行命令

时间:2017-08-02 07:41:47

标签: python ssh paramiko

我正在尝试使用Python中的Parallel-SSH Client在多个服务器上运行命令。但是,在测试这个软件包时,我遇到了一个我似乎无法解决的问题。

这是我的代码:

from pssh import ParallelSSHClient
host = '172.24.1.1'
user = 'XXXX'
password = 'XXXX'
client = ParallelSSHClient(host, user, password)
output = client.run_command('ls -l')

每次我尝试运行此代码时,它似乎都会给我错误:

pssh.exceptions.ConnectionErrorException: ("Error connecting to host '%s:%s' - %s - retry %s/%s", '1', 22, 'Network is unreachable', 3, 3)

OSError: [Errno 101] Network is unreachable

如果我使用SSHClient(),它可以正常工作。所以,我不明白为什么它不能与ParallelSSHClient()一起使用。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

我认为你只是使用了ParallelSSHClient构造函数的错误语法,该构造函数需要一个主机列表,而不是一个主机名。 (列表中只有一个项目很好。)

以下是我根据usage guide中的示例运行的一些代码:

from pssh.pssh_client import ParallelSSHClient

host = '160.100.29.5'
myusername = 'XXXX'
mypassword = 'YYYY'

hosts = [host]   # make a list

client = ParallelSSHClient(hosts, user=myusername, password=mypassword)
output = client.run_command('ls -l')
for line in output['160.100.29.5'].stdout:
    print line

这很好用,但是如果我只使用一个主机(字符串)作为构造函数的第一个参数,而不是列表,那么我会得到你得到的确切错误。

希望这很有用。