如何使用paramiko连续读取长时间运行的ssh命令的输出而不阻塞

时间:2016-06-15 17:18:00

标签: python ssh stdout nonblocking paramiko

我正在尝试连续读取长时间运行的ssh命令的输出。我知道exec_command是非阻止的。但是一旦我使用stdout.readlines()它就会变得阻塞。我不想等待10分钟让我的ssh命令完成读取所有输出行。我想在ssh命令写入stdout后立即获取输出。有办法吗?

import paramiko
#import select
ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname,username=username,password=password)
#transport = ssh.get_transport()
#channel = transport.open_session()
stdin,stdout,stderr = ssh.exec_command(command)
print stdout.readlines()

1 个答案:

答案 0 :(得分:0)

url_for

以上代码有帮助。我得到了这个答案的建议 https://twittercommunity.com/t/does-fabric-support-recyclerviews/62318/2