안녕하세요 리눅스 tail 명령어 질문 드립니다.
글쓴이: yang8659 / 작성시간: 수, 2021/10/13 - 11:48오전
tail 명령어로 실시간으로 쌓이고 있는 로그에서 특정 문자열(ex ERROR)을 추출하여 다른 로그에 쌓고 싶습니다.
그런데 다른 로그에 쌓는 부분이 잘 안되네요.
명렁어는 아래와 같은데요
nohup tail -F ACC.log | grep --line-buffered "ERROR" >> ERROR.log &
tail -F ACC.log | grep --line-buffered "ERROR" 여기까지만 실행하면 ERROR만 추출해서 실시간으로 잘 보이거든요. 그런데 >> ERROR.log로 넘기는부분에서 안되는것 같습니다.
파일퍼미션은 777로 풀로 줬고 ACC.log는 실시간으로 쌓이는 로그입니다.
고수님들 조언 부탁드립니다. ㅠㅠ
혹시나 tail 말고 다른 명령어나 프로그램이 있으면 추천 부탁드려요
감사합니다!
Forums:
실시간으로 쌓이는 로그에서 특정 조건에 맞는 로그만
실시간으로 쌓이는 로그에서 특정 조건에 맞는 로그만 따로 추출해서 조회하기 위해 ELK 스택을 사용했었습니다.
원하시는 건 간단한 해법인 거 같아 적절한 답은 아닌 것 같지만 참고하시기 바랍니다.
----
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.
혹시 다른 문제 아닐까요?
--line-buffered 까지 하셨으면 되야 합니다.
실제로도 많이 쓰고 있는 명령어니까요..
파일만들기에 실패 했다면 파일을 하나 만들어서 테스트 해보시면 어떨까요?
------------------------------------------------------------
ProgrammingHolic
많이 쓰이는 건데도 전혀 몰랐습니다. 배움이 짧다보니
많이 쓰이는 건데도 전혀 몰랐습니다. 배움이 짧다보니... ㅠ.ㅠ
KLDP에 오면 이렇게 배우는 게 있어서 좋네요.
----
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.
tail -F ACC.log | grep --line
tail -F ACC.log | grep --line-buffered "ERROR" >> ERROR.log
도 제대로 동작해야합니다.
다른 곳에 이유가 있을듯.
nohup 을 붙였더니 안되는 거일 수 있습니다.
nohup 을 붙였더니 안되는 거일 수 있습니다.
nohup cmd1 | cmd 2 & 이런식으로는 nohup이 동작하지 않습니다.
cmd1 | cmd2 부분을 cmd.sh 파일에 넣어서,
nohup cmd.sh & 로 해야합니다.
여러가지 시도하다 해결되었네요 답변 달아주신분들 모두 감사합니다.
문제 해당 명령어 실행했더니 ERROR.log 파일은 계속 업데이트 되고 있는 쌓지는 못하는 상황이였네요.
grep에서 "ERROR" -> ERROR 로 "" 빼고 했더니 되네요.. 참...
보여주신 내용만으로는 그럴리는 없습니다.
보여주신 내용만으로는 그럴리는 없습니다.
보여주지 않은 부분에서 뭔가 다른 차이점이 있겠지요.
(하나는 shell에서 직접하고, 하나는 다른 스크립트내에서 실행했다거나..)
저도 좀 의아하네요.
프롬프트 창에서 명령어로도 해보고 쉘스크립트내에서도 테스트 둘다 해보았습니다.
도대체 왜 안되는지 이해가 안되서 답답했는데
nohup 을 사용하는 것 보다는 screen 또는
nohup 을 사용하는 것 보다는 screen 또는 tmux 를 사용하는 것을 권고 드립니다.
nohup 는 명령실행에 따라 의도하지 않게 동작될 수 있는 소지가 많아서 (특히나 pipe 같은 것들..), 그리고 관리면에서도 screen 이나 tmux 쪽이 좋습니다.
아 그런가요? ㅠㅠ 조언 감사합니다.
저도 질문에서처럼 pipe 넘기는쪽에서 제대로 안되고 있는 부분은 인지하고 있었는데.
해결되었으니 다음 기회에 더 깊게 파봐야겠네요
댓글 달기