로그 회전 파일의 'tail -f'를 수행하는 방법은 무엇입니까?


106

장기 실행 시스템에는 보통 다음과 같은 터미널이 있습니다.

$ tail -f /var/log/kern.log

또는 이와 같은 것이 열려 있습니다.

그러나 때때로 새로운 메시지가 더 이상 표시되지 않기 때문에 그러한 명령을 다시 시작해야합니다.

로그 파일 tail -f을 바꾼 로그 회전 작업 이 '감시' 때문이라고 가정합니다 .

이 다시 시작 문제를 피하려면 어떻게해야합니까?

tail회전 과정을 확인하고 올바른 작업을 수행하도록 호출 할 수 있습니까 ?

(이 문제는 rsyslogd기본적으로 사용 되는 Ubuntu 11.04 시스템에서 나타납니다 .)


답변:


162

-F대신 옵션을 사용하십시오 .

tail -F /var/log/kern.log

-F옵션은 tail회전 중에 변경되는 inode 번호를 사용하는 대신 파일 이름으로 파일의 변경 사항을 추적하도록 지시 합니다. 파일이 없으면 계속 열려고합니다.


7
그렇습니다. (레코드의 경우 이것은 GNU tail 옵션입니다-여기서 GNU tail은 물론 우분투에서 기본값입니다).
maxschlepzig

당신은 옳습니다 :-/ 귀하의 질문에 우분투 가 단지 예라는 것을 알지 못했습니다 .
andcoz

전혀 문제가되지 않습니다-나는 단지 완전성에 대해 논평했습니다 (때로는 POSIX가 무엇인지 아닌지보고 싶습니다). 실제로 우분투에 관한 질문이었습니다.
maxschlepzig

1
tail -F /var/log/kern.log해당 tail -f --follow=name --retry /var/log/kern.log합니까?
Basj

1
@Basj - 따라가 man7.org/linux/man-pages/man1/tail.1.html 가 상당의
안드레이
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.