1

我正在通过 SSH 和 Python 在服务器上远程运行脚本。此脚本查看日志文件并根据遇到的每个日志条目返回一些信息。我遇到的问题是,虽然我的脚本在遇到每个日志条目时会立即吐出信息,但我的本地机器需要等待整个过程完成,然后才能从 ssh 连接的标准输出中读取行。

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