파일 이름 뒤에 나오는“tail -f”의 대안


59

시간 초과 회전 파일 로거를 사용하여 일부 로그가 생성되고 있습니다. 이 파일은이라는 파일에 기록 tool.log하고 자정에이 파일을 이동 tool.log.<date>하여 새로 시작합니다 tool.log.

나는이 tail -f tool.log로그에 눈을 유지하기 위해 컴퓨터에서 실행하지만, 한밤중에, 때 tool.log로 이름이 변경되고 tool.log.<date>, tail이름을 바꾼 파일을보기 위해서는 계속한다.

내가 바라는 것은와 비슷한 도구 tail이지만 tool.loginode를 따르는 대신 이라는 파일을 계속 모니터링합니다 .

이와 같은 것이 존재합니까? 그렇지 않으면이 목적으로 파이썬으로 직접 작성할 수 있습니다.

답변:


90

일부 구현에는 tail이를위한 옵션이 있습니다. 다음은 GNU tail에 대한 매뉴얼 페이지의 설명입니다.

-F
와 동일 --follow=name --retry

-f, --follow[ ={ 이름 | descriptor }]
파일이 증가함에 따라 추가 된 데이터를 출력합니다. -f, --follow--follow=descriptor동등

--retry
파일이 없거나 액세스 할 수없는 경우에도 파일을 열려고 시도하십시오. 다음과 같이 이름을 따를 때 유용합니다.--follow=name

이 옵션은 POSIX에 의해 지정되어 있지 않으므로 어디에서나 사용할 수 없습니다. 알려진 일부 구현 :

  • GNU - 한-F전술 한 바와 같이
  • Mac OS X , FreeBSD NetBSD--F 동일한 효과를 가진유사한옵션이 있습니다
  • 오픈 BSD는 --f(파일을 교체 할 경우 (즉, inode 번호가 변경), 꼬리 파일을 다시 계속됩니다) 충분하다
  • Solaris- 해당 없음
  • 비지 박스는 --F최신 버전에서 사용할 수 있지만 사용하여 컴파일해야합니다ENABLE_FEATURE_FANCY_TAIL(이 컴파일에없는 기본적으로)

55

대안은 tail -F명령입니다.

-F옵션은 의미 --follow=name--retry옵션, 그래서 꼬리는 다시 삭제 및 생성 된 경우에도 파일을보고있다.


5

대안 을 요청한 이후 :

less유틸리티는에 대한 대안이 될 수 있습니다 tail -F.

다음과 같이 실행해야합니다. +를 less --follow-name filename.log누르십시오 .ShiftF

이것은와 동일한 결과를 제공합니다 tail -F.


감사. 나는 꼬리 -F를 알지 못했기 때문에 대안을 따랐습니다. 항상 옵션을 아는 것이 좋습니다.

4

또 다른 대안은 watch이 예제에서 n 초마다 2 초마다 명령을 반복하는 명령 을 사용 하는 것입니다.

watch -n2 "tail tool.log"

로그보기가 끝나면 Ctrl+ C를 사용 하여 명령을 종료하십시오.


1
로그가 새로 고침 타이머보다 느리게 스크롤되면 중복 메시지가 많이 생성되고 더 빨리 스크롤하면 일부 메시지가 누락되는 것처럼 보입니다.
Bobson

3
Watch는 전체 화면을 차지하므로 메시지를 복제하지 않지만 뒤로 스크롤하는 기능을 제거합니다.

3

lnav 는 파일 이름을 따르는 또 다른 환상적인 도구입니다.

디렉토리를 가리킬 수 있으며 모든 종류의 다른 깔끔한 기능 외에도 해당 디렉토리의 모든 파일을 테일링합니다.


잘린 및 / 또는 이름이 바뀐 회전 된 로그를 처리하지 못한다는 것을 알았습니다 (특정 경우 어떤 로그를 뒤집는 지 잘 모르겠습니다) .lnav를 다시 시작하지 않으면 자정에 로그가 중지되는 것처럼 보입니다. 나는 그것에 대한 명백한 스위치 또는 기술이 누락 되었습니까?
Stuart Hickinbottom

파일이 잘리는 방식에 따라 다릅니다. 당신이 전달하는 경우 -r플래그를 (모든 이전 로그 아웃 회전로드)는 파일 이름을 다시로드 LNAV합니다
웨인 베르너

1

multitail귀하의 특정 사건을 처리 할지 확실 하지 않지만 그럴 것입니다. multitail은 할 수있는 모든 것을 tail수행합니다.

https://ko.wikipedia.org/wiki/MultiTail


1
그렇습니다- multitail -f <name1> -f <name2> -f <name3> .... 이 예는 여러 파일을 동시에 따르는 것을 보여 주며 별도의 창에 표시됩니다.
Stuart Hickinbottom
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.