최신 로그 파일의 날짜가 변경될 때 로그 파일을 추적하고 계속 추적하는 방법은 무엇입니까?

최신 로그 파일의 날짜가 변경될 때 로그 파일을 추적하고 계속 추적하는 방법은 무엇입니까?

RHEL4를 사용하고 있습니다.

tail -F file_name*.log시간이 0000으로 롤오버되면 법선이 업데이트되지 않습니다.

지금까지 웹 검색을 통해 중첩을 사용하려고 시도한 내용은 다음과 같습니다 tail.

tail -F $(ls -tr file_name*.log | tail -n 1)

tail -F $(fine . -maxdepth 1 -type f -printf "%T@ %p\n" | sort -n | tail n 1 | cut -d' ' -f 2-)

이들 중 어느 것도 새 파일로 롤오버되지 않습니다. 평범하고 오래된 tail -F file_name*.log접근 방식은 내 작은 테스트 사례에서는 작동하지만(위의 2에서는 작동하지 않음) 실제 로그 파일을 추적할 때는 작동하지 않습니다.

답변1

tail단일 파일 또는 시작 시 결정된 최대 파일 세트를 모니터링합니다. 명령에서 tail -F file_name*.log셸은 먼저 와일드카드 패턴을 확장한 다음 tail당시 존재하는 모든 파일에서 이를 호출합니다.

와일드카드 기반 파일 세트를 모니터링하려면 다음을 사용할 수 있습니다.다중 꼬리.

multitail -iw 'file_name*.log' 1

답변2

이것은 작동하지 않습니다. 최신 파일을 결정하는 데 사용하는 하위 쉘은 한 번만 실행됩니다. 쉘은 와일드카드를 한 번만 평가하기 때문에 glob이 작동하지 않습니다.

이를 처리하는 한 가지 방법은 "watch"를 사용하여 전체 프로세스를 실행하는 것입니다. 그러나 이렇게 하면 수 초마다 출력이 손상됩니다.

답변3

꼬리를 추적하려면 뭔가를 작성해야 할 수도 있습니다. 또는 자정에 로그(또는 로그)를 롤링하지 않도록 시스템을 구성하십시오. 어느 쪽이든 스크롤 시 테일 로그 파일의 파일 핸들이 재설정됩니다.

관련 정보