다시 시작할 때 로그 파일을 회전시키는 소프트웨어가 있습니다. 다만, 개발을 하다 보면 재시작을 많이 하게 되기 때문에 수시로 최신 로그 파일을 모니터링 해보고 싶습니다.
less
정상적으로 시작 하고 +를 less program.log
눌러 꼬리를 누르면 로그 파일이 순환될 때 이전 로그 파일을 계속 모니터링합니다. 이는 inode 번호가 동일하게 유지되고 해당 inode에 대한 열린 파일 핸들이 있기 때문이라고 가정합니다.Shiftfless
현재 호출되는 로그 파일에 대한 최신 활동을 모니터링할 수 있습니까 program.log
?
특히 저는 Sun OS에서 작업하고 있으므로 Sun OS에서 작동하는 솔루션이 이상적일 것입니다.
답변1
에서 지원하는 less --follow-name
경우 사용하세요 . 해당 옵션은 버전 416에서 도입되었습니다.less
Shift+F그런 다음 내에서 일반적인 후속 명령을 수행하십시오 less
.
답변2
옵션 less
은 --follow-name
솔루션의 일부일 뿐입니다.
을 바꾸려면 tail -F
다른 인수가 필요합니다.
less --follow-name +F file.log
같은 옵션만으로는 less --follow-name file.log
파일 업데이트를 따라 실제로 시작되지 않습니다. 을 눌러 팔로우 모드로 들어가야 합니다 ShiftF.
( 로 탐색하려면 모드를 종료하세요 ControlC.)
파일을 따르는 대신,--follow-name
행동을 수정합니다덜. 파일 설명자가 아닌 파일 이름을 기반으로 follow 내부의
명령 키를 만듭니다 .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