재부팅 시 로그 파일을 회전시키는 소프트웨어가 있습니다. 하지만 개발 중에 자주 재시작을 하기 때문에 항상 최신 로그 파일을 모니터링하고 싶습니다.
less
정상적으로 시작 하고 +를 끝까지 less program.log
누르면 이전 로그 파일이 회전하면서 계속 모니터링됩니다. 이는 inode 번호가 동일하게 유지되고 해당 inode를 가리키는 열린 파일 핸들이 있기 때문이라고 생각합니다.Shiftfless
현재 호출된 로그 파일의 최신 활동을 모니터링할 수 있습니까 program.log
?
특히 저는 Sun OS용으로 개발 중이므로 Sun OS용 솔루션이 이상적일 것입니다.
답변1
less --follow-name
귀하의 버전이 less
이를 지원하는 경우 이를 사용하십시오.
이 옵션은 버전 416에서 도입되었습니다.
Shift+F그런 다음 내부에서 일반 후속 명령을 실행하십시오 less
.
답변2
이 less
옵션은 --follow-name
솔루션의 일부일 뿐이므로
다른 tail -F
인수가 필요합니다.
less --follow-name +F file.log
개별 옵션은 less --follow-name file.log
파일이 업데이트된 후에 실제로 시작되지 않습니다. 팔로우 모드로 들어가려면 를 눌러야 합니다 ShiftF.
(내비게이션 모드를 종료합니다 ControlC.)
문서를 따르는 대신,--follow-name
행동을 바꾸다더 적은.
파일 설명자가 아닌 파일 이름을 기반으로 내부 명령 키를 따릅니다 .ShiftFless
less
또한 팔로우 모드에서 시작할 수 있는 일반 옵션이 없습니다 .
하지만 명령줄을 사용하여 제공할 수 있습니다.실행 버튼일단 시작되면 와 함께 수정자 옵션을 사용하면 접두어가 붙는 (수정된) 따르기 모드에서 실제로 시작됩니다 +
.+F
less
단독으로 사용하면 +F
일반과 동일합니다 tail -f
.
less +F file.log
답변3
방금 다음과 같은 제목의 U&L Q&A에서 답변을 찾았습니다.tail -f
로그 파일을 순환하는 방법은 무엇입니까 ?.
사용 tail
:
(시스템에 GNU tail을 설치할 수 있는 옵션이 있는 경우)
tail -F program.log
~에서테일 매뉴얼 페이지:
-f, --follow[={name|descriptor}]
output appended data as the file grows; -f,
--follow, and --follow=descriptor are equivalent
-F same as --follow=name --retry
--retry keep trying to open a file even when it is or becomes
inaccessible; useful when following by name, i.e., with
--follow=name
핵심은 --retry
스위치다. 이는 tail
이름별로 파일 추적을 계속 재시도하도록 명령에 지시합니다. 이 스위치는 a 및 a 작업을 -F
모두 수행합니다 .-f
--retry
사용less
@StephaneChazela가 의견에서 지적했듯이 다음은 작동하지 않습니다.
tail -F program.log | less
--follow-name
유일한 다른 옵션은 스위치와 파일을 직접 지원한다고 가정하고 덜 직접적으로 사용 less
하고 tail
완전히 사용을 포기하는 것입니다.
less --follow-name program.log