Я использую Paramiko для подключения ssh к телекоммуникационному коммутатору, который не поддерживает использование exec_command (). Поэтому я использую invoke_shell () и send ().
То, что я пытаюсь сделать, это ssh, exec a 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?