inode 번호가 아닌 파일 이름을 어떻게 줄이나요?


11

다시 시작할 때 로그 파일을 회전시키는 소프트웨어가 있습니다. 그러나 개발 중에는 다시 시작하기 때문에 언제든지 최신 로그 파일을 모니터링하고 싶습니다.

로그 파일이 회전 할 때 less정상적으로 시작 less program.log하고 Shift+ fto tail를 누르면 이전 로그 파일을 계속 모니터링합니다. 이것은 inode 번호가 동일하게 유지 less되고 해당 inode에 열린 파일 핸들 이 있기 때문이라고 가정합니다 .

현재 호출 된 로그 파일에 대한 최신 활동을 모니터링 할 수 program.log있습니까?

특히, 나는 Sun OS에서 일하고 있으므로 거기에서 작동하는 솔루션이 이상적입니다.


아마 tail -F program.log | less작동 할 것입니다
sendmoreinfo

tail -f program.log 이것을 시도 했습니까?
Rahul Patil

답변:


17

사용중인 less --follow-name버전에서 less지원하는 경우 사용하십시오 . 이 옵션은 버전 416에서 도입되었습니다.


훌륭한 답변. Solaris 10과 Solaris 11 모두 버전 436을 적게 사용하므로이 옵션을 실제로 사용할 수 있습니다.
unixhacker2010

5

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

1

난 그냥이 U & L Q & A에서 답라는 제목의 발견 : 어떻게 할 tail -f로그 파일을 회전? .

사용 tail:

(시스템에 GNU tail을 설치하는 것이 옵션 인 경우)

tail -F program.log

로부터 꼬리 man 페이지 :

   -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파일 이름을 따라 계속 재 시도하도록 명령에 지시합니다 . -F스위치는 모두 수행 -f과를 --retry.

사용 less

@StephaneChazela가 의견에서 지적했듯이 다음은 작동하지 않습니다.

tail -F program.log | less

다른 옵션은 --follow-name스위치와 less파일을 직접 지원한다고 가정하고 완전히 사용하지 않는 것으로 가정하면 덜 직접 사용하는 것 tail입니다.

less --follow-name program.log

나는 때때로 Sun OS를 싫어한다 ...
Alex Chamberlain

나는 몇 년 동안 일한 것에 동의합니다. 툴링이 일부 앱의 경우 10 살이라고 생각합니다. 말이되지 않습니다. 이 사이트는 솔라리스에서 건강을 유지하는 데 귀중한 가치가있었습니다. sunfreeware.com/introduction.html
slm

더 많은 정신을 원한다면 pkgsrc.org를 확인하십시오.
sendmoreinfo

그것은 잘 작동하지 않습니다. 하기 때문에 less당신이 "G"홍보 "F"를 할 경우 중단됩니다. "Ctrl-C"를 수행하여 중단 할 수 있지만 꼬리를 죽입니다. 그런 다음 Ctrl-C에 꼬리를 면역 할 수는 있지만 여전히 유용하지는 않습니다.
Stéphane Chazelas

체크 아웃 : GNU 꼬리와 관련하여 도구는 모든 Solaris 호스트에 사용할 수 있어야 무엇인지에 대한 정보를 얻을 수 있습니다. (실제로 GNU tail은 Solaris 11에 기본적으로 있습니다). 솔라리스 sysadmins는 사용자들이 맨 설치로 설치를 떠나기 때문에 종종 사용자를 어렵게 만듭니다. 솔라리스 용 GNU 도구는 요즘 실제로 Oracle에서 직접 또는 일부 경우에는 기본 설치의 일부로 제공됩니다. 설치의 일부가되지 않을 이유가 없습니다. '비공식'저장소에 갈 이유가 없습니다. 링크를 참조하십시오.
unixhacker2010
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.