Ich versuche, die Ausgabe eines lang laufenden SSH-Befehl kontinuierlich zu lesen. Ich verstehe, dass exec_command
nicht blockiert ist. Aber sobald ich stdout.readlines()
verwende, wird es blockiert. Ich möchte nicht 10 Minuten warten, bis mein ssh-Befehl alle Zeilen gelesen hat. Ich möchte die Ausgabe erhalten, sobald der Befehl ssh in stdout schreibt. Gibt es einen Weg, es zu tun?Wie liest man die Ausgabe von lang laufenden SSH-Befehl kontinuierlich ohne Blockierung mit Paramiko
import paramiko
#import select
ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname,username=username,password=password)
#transport = ssh.get_transport()
#channel = transport.open_session()
stdin,stdout,stderr = ssh.exec_command(command)
print stdout.readlines()