본문 바로가기
개발(코딩) 경험 저장소/서버,유틸 설치 및 관리

[리눅스] 실전(?) tail 명령어

by 주니우스 2022. 5. 27.
반응형

요즘 금융쪽 프로젝트를 하며 TEST를 하다보니

linux에서 명령어.. 특히 로그 보기위한 명령어들이 많이 필요하게 되었다.

정말 잘 만 익히면 엄청나게 편하고 시간을 많이 줄여주며 오류파악하는데 큰 도움이 되는데

그러나 나는 아직도 미숙하다.

cat, grep, awk 등등 만 잘쓰면 원하는 거의 모든 작업을 할수 있는것 같다.

 

내가 로그를 보는데 가장 많이 쓰는 명령어가 tail 이다.

tail -f 를 걸어놓으면 로그파일에 새로 추가되는 로그를 실시간으로 볼수 있어 정말 편한데

log level을 debug 등으로 해놓을 경우 너무 많은 로그가 올라와 보고자하는 로그를 놓치는 경우도 있고

계속 터미널만 바라볼수 없을 때도 있다.

 

실시간 로그를 보려고 하는데 그중에서도 특정 단어나 스트링이 포함된 로그만 tail 로 보려고 할때는

아래와 같은 형태로 보면 된다.

 

tail -F  service.log | grep -i "SELECT \* FROM"

 

(service.log 와 "SELECT \* FROM" 는 샘플임. 파일명과 보고자하는 스트링은 맞춰 수정하세요)

 

옵션중 -f 와 -F의 차이

사용하다보면 둘다 차이가 없는것 같아 보인다.

그러나 어쩌다가 그 차이를 느낄때가 있다. 주로 밤 12시에 작업할때?ㅋㅋ

 

예를들면 current.log 가 있다고 해보자

근데 그날 그날 로그는 current.log 에 쓰고 날짜가 변경이 되면 current.log.20220902 로 백업하고

새로 current.log파일을 생성해서 시스템이 로그를 남긴다고 할때

 

-f 옵션은 12시가 되어 current.log 파일이 current.log.20220902 로 백업되는 순간 더이상 로그가 출력 되지 않고 멈춘다.

-F 는 위와 같이 파일이 변경이 되었어도 새로 생성된 current.log 에서 계속 로그가 기록되는걸 출력한다.

그래서 -F를 사용하도록 습관들이는게 좋을듯 하다.

 

grep 에 -i 옵션을 나는 자주 쓴데~ 왜냐면 대문자인지 소문자인지 늘 대부분 기억이 안나기때문에

그리고 검색하고자 하는 스트링에 특수문자가 있을 경우에는 "\" 를 앞에 붙인다.

검색하고자하는 문자열이 "SELECT * FROM" 일경우엔 "SELECT \* FROM" 로 하면 된다.

반응형

댓글