我通过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
本质上,此代码最后一次打印所有结果。我想知道是否有一种方法可以打印出stdout的内容,因为它是在服务器上生成的。对不起,如果不清楚,如果有些含糊不清,我会尽力澄清。谢谢!
编辑:我还应该补充一点,我最好不要在没有任何外部软件包的情况下这样做,如果可能的话只需要2.6的内置模块。