我正在尝试使用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()一起使用。有人可以帮忙吗?
答案 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
这很好用,但是如果我只使用一个主机(字符串)作为构造函数的第一个参数,而不是列表,那么我会得到你得到的确切错误。
希望这很有用。