tail -f 결과를 grep으로 filtering 하여 저장하는 방법 문의드립니다.
글쓴이: sharukee / 작성시간: 월, 2013/07/15 - 7:09오후
#mylog file 이 아래와 같을 때, tail -f 결과중 Error 라인만 파일로 저장하고 싶은데요...
Error 1
Info 1
Error 2
Info 2
1. TRY1.
tail -f mylog | grep Error > mylog_tail.out
2. TRY2.
tail -f mylog | grep Error | tee mylog_tail.out
해봤습니다만, 아무것도 안나와서 문의드립니다.
실시간 로그중 Error 사항들만 파일로 발라내고 싶어서요.
Forums:
자답:해결완료..
원인은 grep이 buffering을 하기 때문이군요....
해결책은
1. GNU grep을 사용한다면, --line-buffered 옵션을 주면 되구요.
예) tail -f mylog | grep --line-buffered Error > mylog_tail.out
2. GNU grep이 아니라면(unix 환경에서 GNU grep이 없다면)
예)
tail -f mylog | while read LINE
do
echo "${LINE}" | grep Error >> mylog_tail.out
done
로 해결됩니다.
보고싶다. 미치도록......얼마나 더 가야 하나.......끝.
댓글 달기