我试图将stdout
脚本捕获到文件中,同时让它显示其正在进行的摘要:
./RUN host-names ANSIBLE.yml 2>&1 | tee out.txt
它的作用是显示初始行并将其转发到out.txt
,但从那里开始实际的主机检查,它停止显示并转发到out.txt
:
PLAY [all]
********************************************************************
GATHERING FACTS
********************************************************************
之后,PLAY
它GATHERING FACTS
会继续工作,但前提是我在没有命令的情况下运行脚本tee
:
ok: [host.com]
ok: [host.com]
ok: [host.com]
fatal: [host.com]
grep
我也只对文件的一些输出感兴趣out.txt
,如fatal
并省略ok
主机。
答案1
我找到了这个页面(https://coderwall.com/p/d5zqla/unbuffered-output-with-ansible-in-jenkins),展示了如何强制输出不被缓冲。
我修改了我的脚本,如下所示:
export PYTHONUNBUFFERED=1
ansible-playbook -i inventory site.yml
现在我在脚本运行时得到了可靠的输出。这有帮助吗?