Ich verwende Paramiko, um rsync auf einem Remote-Computer auszuführen. Wenn ich stdout.readlines() verwende, blockiert es mein Programm und gibt eine Menge Zeilen aus, nachdem der Befehl beendet ist. Ich weiß rsync Fortschritt aktualisiert immer seine Ausgabe. Wie lese ich die Ausgabe jedes Intervall, ohne auf den Abschluss des Befehls zu warten (ich übertrage eine sehr große Datei).Paramiko & rsync - Get Progress asynchron während Befehl ausgeführt wird
import paramiko
import time
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(...)
stdin, stdout, stderr = ssh.exec_command("rsync...")
counter = 0
while True:
counter += 1
print stdout.readlines(), stderr.readlines(), counter
time.sleep(3)