我正在使用Paramiko将SSH切换到不支持使用exec_command()的电信交换机。所以我改用invoke_shell()和send()。
我要执行的操作是ssh,执行cmd,然后sftp文件。 这是一个片段。
<code>
chan.send(cmd4)
time.sleep(5)
if chan.recv_ready():
result = chan.recv(1024)
while chan.recv_ready():
result += chan.recv(1024)
print(result)
exit_status = chan.recv_exit_status()
if exit_status == 0:
try:
sftp = ssh.open_sftp()
sftp.get(remotePath,path)
sftp.close()
except:
print "sftp error"
else:
print("exit status not 0")
chan.close()
</code>
问题是该命令可能需要10分钟到2个小时,具体取决于开关。那么,在尝试sftp之前,我将如何等到命令完成?