증가하는 로그 파일의 새 항목만 보기

증가하는 로그 파일의 새 항목만 보기
tail -f x.log

이 명령을 사용하여 명령 프롬프트에서 증가하는 로그 파일을 봅니다.

tail -f나는 실행 전에 파일에 기록된 로그 행이 아니라 실행 후에 파일에 기록된 로그 행을 보는 데만 관심이 있습니다 tail -f. 그러나 tail -f시작 시 명령은 마지막 10줄을 가져와서 표시합니다.

이것은 나를 혼란스럽게 합니다. 때때로 이러한 로그가 새로 생성된 것입니까(또는) 오래된 로그입니까?

그렇다면 tail -f를 사용자 정의하여 새 항목만 출력하려면 어떻게 해야 합니까?

답변1

당신은 시도 할 수 있습니다:

tail -n0 -f x.log

~에서매뉴얼 페이지:

-n, --line=K는
마지막 10개 라인 대신 마지막 K개 라인을 출력하거나 -n +K를 사용하여 K번째로 시작하는 라인을 출력합니다.

답변2

-n0옵션을 사용하여 행 0을 표시할 수 있습니다. 그래서

tail -n0 -f some.log

답변3

less다음과 같은 명령을 사용할 수도 있습니다 .

  1. less file_name.log(로그 파일이 열리고 로그 파일의 첫 번째 페이지가 표시됩니다)
  2. shift+를 누릅니다 f(tail -f와 동일).
  3. 로그 파일에서 키워드를 검색해야 하는 경우. ctrl+를 눌러 테일 모드를 종료하고 키워드 및 키워드를 c검색하세요 ./?

답변4

Docker 컨테이너 내부의 항목을 모니터링해야 할 때 다음 방법을 만들었습니다.

LOG_COUNT=0
LOGS=/var/logs/your_logs

function HEART_BEAT() {
    LOG_COUNT_NEW=$(wc -l $LOGS | awk '{ print $1 }')
    tail -n $(( $LOG_COUNT_NEW - $LOG_COUNT )) $LOGS
    LOG_COUNT=$LOG_COUNT_NEW
}

도움이 되었기를 바랍니다!

관련 정보