我正在通过 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 的内置模块。