Logrotate는 로그를 회전하지 않습니다.

Logrotate는 로그를 회전하지 않습니다.

나는 사용하고 싶다로그 비율. 로그 는 /var/log/curLog/log.log문서에 언급된 대로 . 그 내용은 다음과 같습니다:/etc/logrotate.d/currentLogcurrentLog

/var/log/curLog/log.log{
    size 100k,
    rotate 10,
    daily,
    compress,
    notifempty
    missingok
}

그러나 로그 크기가 100,000개 이상으로 증가하면 아무 일도 일어나지 않습니다. 일부 서비스를 다시 시작해야 합니까, 아니면 다른 작업을 수행해야 합니까?

답변1

회전이 발생하는 시점을 결정하는 3가지 옵션이 있습니다.

size 100k   # if size > 100k
daily       # once a day
notifempty  # not if == 0k

삭제. daily파일이 100,000개를 초과하면 더 자주 발생해야 합니다.

둘째, 로그 파일을 생성한 프로세스가 파일을 열어두는 데몬인 경우 프로세스를 다시 시작하거나 적어도 이전 로그 파일을 이동한 후 새 로그 파일을 열려면 logrotate에 신호를 보내야 할 가능성이 큽니다.

예를 들어, Apache httpd는 kill -SIGUSR1 <pid>또는 /usr/sbin/apachectl graceful명령을 사용하여 완전히 다시 시작하는 대신 구성을 넉넉하게 다시 로드하고 로그 파일을 다시 열 수 있습니다.

postrotate
        /usr/sbin/apachectl graceful > /dev/null
endscript

관련 정보