tail은 이제 그만

내 이 세상 도처에서 쉴 곳을 찾아보았으나, 마침내 찾아낸, 컴퓨터가 있는 구석방보다 나은 곳은 없더라.

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 옵션 없이 파일을 열었을 때처럼)로 들어간다.

이제 /xxxxxx를 검색할 수 있다. 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를 쓴다 해도 큰 불편은 없을 듯 하다.