2
私はリモートマシン上でrsyncを実行するためにparamikoを使用しています。 stdout.readlines()を使用すると、プログラムがブロックされ、コマンドが終了した後に大量の行が出力されます。私はrsyncの進捗状況が常にその出力を更新することを知っている。コマンドを完了するのを待つことなく、間隔ごとに出力を読み取るにはどうすればよいですか(非常に大きなファイルを転送しています)。Paramiko&rsync - コマンド実行中に進行を非同期で取得する
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)