【问题标题】:Python Parallel SSH get only command outputPython Parallel SSH 仅获取命令输出
【发布时间】:2016-03-09 05:07:45
【问题描述】:

我是 Python 新手,我希望对设备运行多个并行 ssh 连接和命令。我正在使用psshlink。 问题是设备在连接后返回一些大标题,如 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

无论如何我都能得到命令输出?

【问题讨论】:

    标签: python ssh pssh


    【解决方案1】:

    我不确定我理解你的意思。 我也在使用 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)
    

    您能详细说明一下吗?也许提供一个你运行的命令和你得到的输出的例子?

    【讨论】:

    • 我不得不真正放弃 ParallelSSH 并转向 paramiko 和线程。设备在登录时输出标准输出。我还必须对 SSHClient 源代码进行一些更改,因为该设备没有 bash,所以我认为最好放弃它。如果你想继续聊天,我仍然遇到一些性能问题。
    • 如果有问题的设备在登录时输出到标准输出,您将在您使用的任何 SSH 客户端中看到该输出。标准输出就是标准输出。查看更改日志,从去年开始,parallel-ssh 不再需要 bash,可能想看看它是否能解决您的性能问题。提示 - 线程在并行网络连接中表现不佳。
    【解决方案2】:

    结帐 pssh。
    该工具使用多线程,执行速度快。
    你可以阅读更多关于它的信息here

    【讨论】:

      猜你喜欢
      • 2014-03-29
      • 2012-06-29
      • 1970-01-01
      • 1970-01-01
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      • 2017-03-11
      • 1970-01-01
      相关资源
      最近更新 更多