Paramiko: jak zapewnić, że dane są odbierane między poleceniami

Używam Paramiko do wydawania wielu poleceń i zbierania wyników do dalszej analizy. Co jakiś czas wyniki pierwszego polecenia są w pełni zwracane w czasie i kończą się na wyjściu dla drugiego polecenia.

Próbuję użyć recv_ready, aby to wyjaśnić, ale nie działa, więc zakładam, że robię coś złego. Oto odpowiedni kod:

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)

Dane wyjściowe tych poleceń są stosunkowo małe (kilka zdań). Zwiększenie pauzy prawdopodobnie rozwiąże problem, ale nie jest idealnym rozwiązaniem.

Wszelkie sugestie i zalecenia zostaną docenione.

questionAnswers(1)

yourAnswerToTheQuestion