Bash 스크립트 및 yml 파일 출력

Bash 스크립트 및 yml 파일 출력

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

이제 스크립트가 실행될 때 안정적인 출력을 얻습니다. 이것이 도움이 됩니까?

관련 정보