【发布时间】:2014-01-13 03:01:50
【问题描述】:
我正在使用 Paramiko 发出许多命令并收集结果以供进一步分析。每隔一段时间,第一个命令的结果会及时完全返回,并最终出现在第二个命令的输出中。
我正在尝试使用 recv_ready 来解决这个问题,但它不起作用,所以我认为我做错了什么。以下是相关代码:
pause = 1
def issue_command(chan, pause, cmd):
# send commands and return results
chan.send(cmd + '\n')
while not chan.recv_ready():
time.sleep(pause)
data = chan.recv(99999)
ssh = paramiko.SSHClient()
ssh.load_system_host_keys()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
chan = ssh.connect(host, port=22, username=username, password=password, timeout=3,)
resp1 = issue_command(chan, pause, cmd1)
resp2 = issue_command(chan, pause, cmd2)
这些命令的输出相对较小(几句话)。增加暂停可能会解决问题,但不是理想的解决方案。
任何建议或建议将不胜感激。
【问题讨论】: