Logrotate: 로그 파일이 회전되지 않습니다.

Logrotate: 로그 파일이 회전되지 않습니다.

순환된 로그 파일을 사용하려고 합니다 logrorate. 구성은 다음과 같습니다.

/etc/logrotate.conf:

/var/log/test.log {
        size 1M
        rotate 6
        create
        dateext
        nocompress
}

그런 다음 seqto 명령을 사용하여 일부 데이터를 덤프했지만 /var/log/test.log파일이 자동으로 회전하지 않습니다.

ls -ltrh test.log
-rw-r--r-- 1 root root 1.3M Jan 27 09:56 test.log

force 를 사용하여 회전하려고 하면 logrotate -f test.log출력은 다음과 같습니다.

error: test.log:37156 lines must begin with a keyword or a filename (possibly in double quotes)
error: test.log:37157 lines must begin with a keyword or a filename (possibly in double quotes)
error: test.log:37158 lines must begin with a keyword or a filename (possibly in double quotes)
error: test.log:37159 lines must begin with a keyword or a filename (possibly in double quotes)

수정이 필요한 경우 제안해 주시기 바랍니다.

답변1

logrotate에 대한 인수는 구성 파일일 것으로 예상되므로 test.log에 대한 오류는 잘못된 구성 파일에 관한 것입니다. 노력하다:

logrotate -f /etc/logrotate.conf

그래도 문제가 해결되지 않으면 -d디버그 로깅을 켜는 옵션을 사용해 볼 수 있습니다. 마지막으로 logrotate에 로그 파일을 회전하도록 지시하는 유일한 방법은 해당 상태 파일 /var/lib/logrotate.status를 수정하는 것뿐인 상황에 직면했습니다. 이 파일의 형식은 다음과 같습니다.

logrotate state -- version 2
"/path/to/a.log" 2015-1-26-11:0:0
"/path/to/another.log" 2015-1-26-11:0:0

두 번째 열은 파일이 마지막으로 수정된 날짜입니다. logrotate가 실행되도록 하기 위해 날짜를 더 과거로 밀어 넣을 수 있습니다. 그러나 구성에 따라 크기 기반 회전을 사용하므로 이는 필요하지 않습니다.

답변2

이 오류는 문제에 대한 힌트를 제공합니다. 이 logrotate 파일을 어떻게 만들었나요? 파일에 잘못된 데이터나 캐리지 리턴이 포함되어 있을 수 있습니다.

리뷰를 추천합니다이 답변파일 확인 방법에 대한 제안. 아니면 최소한 직접 파일을 다시 만드세요. 해당 파일에 콘텐츠를 복사하여 붙여넣으면 파일에 몰래 뭔가가 있을 수 있습니다.

관련 정보