2017-04-26 42 views
1

にリモートでの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

+0

は答えで同様の質問です/ questions/25260088/paramiko-with-continuous-stdout) –

+0

私はそれを読んでそれに従いましたが、違いはありません –

答えて

0

パス-u:[paramiko連続標準出力付き](http://stackoverflow.com:ここ

stdin, stdout, stderr = ssh.exec_command('python -u /home/user/test.py') 
for line in stdout: 
    print line.rstrip() 
+0

すごい!それは今働きます!どうもありがとうございます。あなたは私の夜を救う –

関連する問題