我是Python新手,我希望为设备运行多个并行ssh连接和命令。我正在使用pssh
link。
问题是设备在连接后返回一些大的标题,如20-30行。
当我使用下面的代码时,打印出来的是命令的结果,但是在顶部还有登录后打印的大标题。
hosts = ['XX.XXX.XX.XXX']
client = ParallelSSHClient(hosts, user='XXXX', password='XXXXX')
output = client.run_command('command')
for host in output:
for line in output[host]['stdout']:
print line
无论如何我可以获得命令输出吗?
答案 0 :(得分:0)
不确定我明白你的意思。 我也使用pssh,似乎我使用与您相同的方法来打印命令的输出,见下文:
client = pssh.ParallelSSHClient(nodes, pool_size=args.batch, timeout=10, num_retries=1)
output = client.run_command(command, sudo=True)
for node in output:
for line in output[node]['stdout']:
print '[{0}] {1}'.format(node, line)
你能详细说明一下吗?也许提供一个你运行的命令和你得到的输出的例子?
答案 1 :(得分:0)
checkout pssh。
该工具使用多线程并快速执行
你可以阅读更多相关信息here。