2017-08-02 172 views
0

我想在Python中使用Parallel-SSH Client来在多台服务器上运行命令。然而,在测试这个软件包时,我遇到了一个我似乎无法解决的问题。ParallelSSHClient()没有运行命令

这里是我的代码:

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()一起工作。任何人都可以帮忙吗?

回答

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 

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

希望这是有用的。

+0

哇,这是我的一个愚蠢的错误!现在工作正常,谢谢! –

+0

谢谢,它为我工作。 –