tail은 이제 그만
서버에서 로그 파일을 모니터링 할 때 보통 tail -f
를 사용한다. 그런데 최근 더 좋은 방법을 알게 되었다. 바로 less +F
를 사용하는 것이다. tail -f
를 사용할 때 파일에서 어떤 내용을 찾고 싶을 때는 흔히 다음 두 방법을 사용한다.
- 터미널 화면을 위/아래로 스크롤하며 내용을 찾는다. 터미널 프로그램의 찾기 기능을 활용하는 것도 가능하다. 터미널 화면에서 이미 지나간 내용을 찾아야 하는 경우를 대비해 스크롤백 버퍼의 크기를 충분하게 설정해 놓아야 한다.
tail
을 종료하고vim
으로 파일을 다시 열어 검색한다. 모니터링을 계속 하려면 검색이 끝난 다음 다시tail
을 다시 실행해야 한다. 스크롤 버퍼의 범위를 벗어난 내용을 찾으려면 이렇게 하는 수밖에 없다.
less +F를 이용한 모니터링
less
를 사용한다면 위 작업을 다음과 같이 좀더 편하게 할 수 있다. 먼저 모니터링 하고자 하는 파일을 less
로 연다. 파일 이름이 server.log
라면 다음과 같이 할 수 있다.
$ less +F server.log
여기까지는 tail
로 파일을 열었을 때와 비슷하다. 뭔가 흥미로운 게 나타나 xxx
가 나타나는 모든 곳을 찾고 싶다고 해보자. 이때 Ctrl+C
를 눌러 일반 모드(normal less mode, +F
옵션 없이 파일을 열었을 때처럼)로 들어간다.
이제 /xxx
로 xxx
를 검색할 수 있다. n
, N
으로 이전/다음 찾기를 실행할 수 있고 j
, k
를 이용해 위/아래로 이동할 수 있다. 작업을 마쳤다면 F
를 눌러 감시 모드(watching mode)로 돌아갈 수 있다.
따라서 less +F
를 사용하면 tail -f
를 사용했을 때와 마찬가지로 파일을 모니터링할 수 있을뿐 아니라 터미널 프로그램의 찾기 기능이나 vim
같은 외부 프로그램의 도움 없이 파일 안의 내용을 검색할 수 있다. tail
을 사용하는 것보다 less
를 사용하는 것이 좀더 편하게 파일을 모니터링 할 수 있어 보인다.
다만 파일을 모니터링할 때 습관적으로 tail -f
를 쳐왔기 때문에 의식적으로 노력해야 less +F
를 쓸 수 있을 것 같다.
참고
이 글은 Stop Using tail -f(mostly)을 발췌, 요약한 것이다. 원 저자는 여러 파일을 한꺼번에 모니터링 하는 경우 less
보다 tail
을 사용하는 게 좋다고 말한다. tail -f
는 출력이 발생할 때마다 파일 이름이 표시되고 그 아래 변경 내용이 나오므로 여러 파일을 동시에 보기가 좀더 편하기 때문이다. less
는 한 화면에 하나의 파일 내용만 보여주며 Ctrl+C
를 눌러 일반 모드로 간 다음 :n
을 입력해 다음 버퍼로 가야 다른 파일의 내용을 확인할 수 있어 번거롭다.
그러나 여러 파일을 한꺼번에 모니터링해야 하는 경우 보통 파일 별로 탭을 만들어 따로 봐왔기 때문에 less
를 쓴다 해도 큰 불편은 없을 듯 하다.