【问题标题】:Paramiko ssh output stops at --more--Paramiko ssh 输出停止在 --more--
【发布时间】:2014-07-18 15:07:49
【问题描述】:

输出停止打印在 --more- 任何想法如何获得输出的结尾

 >>> import paramiko
 >>> ssh = paramiko.SSHClient()
 >>> ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
 >>> conn=ssh.connect("ipaddress",username="user", password="pass")
 >>> channel = ssh.invoke_shell()
 >>> channel.send("en\n")
 3
 >>> channel.send("password\n")
 9 
 >>> channel.send("show security local-user-list\n")
 30
 >>> results = ''
 >>> channel.send("\n")
 1
 >>> results += channel.recv(5000)
 >>> print results

 bluecoat>en
 Password:
 bluecoat#show security local-user-list
 Default List: local_user_database
 Append users loaded from file to default list: false
 local_user_database
 Lockout parameters:
 Max failed attempts: 60
 Lockout duration:    3600
 Reset interval:      7200
 Users:
 Groups:

 admin_local
  Lockout parameters:
  Max failed attempts: 60
 Lockout duration:    3600
 Reset interval:      7200
 Users:
  <username>
    Hashed Password: 
    Enabled:         true
    Groups:

  <username>
    Hashed Password: 
    Enabled:         true
  **--More--**

正如您在上面看到的,输出停止打印在 --more- 任何想法如何让输出打印到最后。

【问题讨论】:

  • 为了进一步澄清问题,paramiko 中是否有任何功能可以禁用分页

标签: python-2.7 networking ssh paramiko


【解决方案1】:

在 paramiko 连接方法中增加终端的高度修复了这个问题

【讨论】:

    【解决方案2】:

    它与time.sleep(0.001) 配合得很好:

    while connection.recv_ready():
        time.sleep(0.001)
        outputtostr += connection.recv(2048).decode("utf-8")
    return outputtostr
    

    【讨论】:

    • 睡眠语句应该如何影响截断的输出?
    • 请详细说明,提供explanation 为您解答。