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를 쓴다 해도 큰 불편은 없을 듯 하다.