にリモートでのPythonの出力を取得します。私はこの単純なPythonのコード持ってリアルタイム
import time
print "1"
time.sleep(3)
print "2"
time.sleep(2)
そして、私がリモートでそれを実行するためにparamikoを使用します。
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('X.X.X.X', username='user', key_filename='/home/user/.ssh/id_rsa')
stdin, stdout, stderr = ssh.exec_command('python /home/user/test.py')
print stdout.read()
ssh.close()
をこれは、Pythonのコードが終了するまで待機しますと、すべてを印刷します。しかし、それはリアルタイムで各行を印刷したい。どうしたらいいですか?
ありがとうございます。
更新:
ssh [email protected] "python /home/user/test.py"
と出力は同じです。私は、sshコマンドでPythonコードを実行しようとしました。 Pythonコードが終了するまで待機し、すべてを出力します。 シェルスクリプトをリモートで実行すると、sshコマンドとparamikoの両方が正常です。 unbuffered stdoutを取得し、各ライン得るためにあなたのstdout
を反復するpython
へ
は答えで同様の質問です/ questions/25260088/paramiko-with-continuous-stdout) –
私はそれを読んでそれに従いましたが、違いはありません –