1

SSH と Python を介してサーバー上でスクリプトをリモートで実行しています。このスクリプトはログ ファイルを調べ、検出した各ログ エントリに基づいていくつかの情報を返します。私が直面している問題は、スクリプトが各ログ エントリにヒットするとすぐに情報を吐き出すものの、ローカル マシンが ssh 接続の stdout から行を読み取る前に、プロセス全体が完了するまで待機する必要があることです。

ssh = subprocess.Popen(cmd.split(' '), stdout=subprocess.PIPE)
with open(remote_ip+'.hits', 'w') as f:
  for line in ssh.stdout:
    print line

基本的に、このコードはすべての結果を最後に一度に出力します。サーバー上で生成されている標準出力の内容を印刷する方法があるかどうか疑問に思っていました。これが不明確である場合は申し訳ありませんが、何かがあいまいな場合は、明確にするために最善を尽くします. ありがとう!

編集:可能であれば、2.6の組み込みモジュールだけで、外部パッケージなしでこれを実行したいことも追加する必要があります。

4

0 に答える 0