Paramiko, как ждать, пока cmd не закончится. (Не могу использовать exec_command) - PullRequest
0 голосов
/ 28 августа 2018

Я использую 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?

...