크기 옵션만 사용한 로그 회전은 회전하지 않습니다. 이것은 알파인 도커 컨테이너 내부에 있습니다.

크기 옵션만 사용한 로그 회전은 회전하지 않습니다. 이것은 알파인 도커 컨테이너 내부에 있습니다.

다음과 같은 액세스 로그 구성이 있습니다.

cat /etc/logrotate.d/logrotate_nginx.conf
/nginx/access/logs/*.log {
  rotate 2
  size 1k
  missingok
  compress
  notifempty
  copytruncate
}

시간 간격 구성이 없습니다.

이는 1KiloByte에 도달한 후 "/nginx/access/logs/"에서 로그를 회전한다는 의미입니다. 그렇죠?

하지만 지금은 로그 회전입니다.

/ # ls -l /nginx/access/logs/
total 8
-rw-r--r--    1 root     root          1264 Jun 24 11:17 nginx-access.log
-rw-r--r--    1 root     root          1292 Jun 24 11:17 nginx-access_withbody.log
-rw-r--r--    1 root     root             0 Jun 24 11:16 nginx-error.log

이것은 logrotate.status입니다.

/ # cat /var/lib/logrotate.status
logrotate state -- version 2
"/var/log/acpid.log" 2019-6-24-11:0:0
"/mnt/mesos/sandbox/logs/nginx-error.log" 2019-6-24-11:0:0
"/mnt/mesos/sandbox/logs/nginx-access.log" 2019-6-24-11:0:0
"/mnt/mesos/sandbox/logs/nginx-access_withbody.log" 2019-6-24-11:0:0

왜 회전하지 않는지 알고 싶습니다. 문제가 conf에 있는 경우. 문서에 따르면

크기 크기

이 옵션은 상호적입니다.
간격 옵션과 상호 배타적이며 로그가 발생합니다.
시간 조건 뒤에 지정하면 회전할 파일은 마지막 회전 시간을 고려하지 않습니다.

답변1

포함된 파일을 보면 logrotate.status로그가 마지막으로 회전된 시간이 11:00인 것으로 나타나며 디렉터리 목록을 보면 그 이후에 파일이 업데이트되었음을 ​​확인할 수 있습니다.

logrotate이는 작업이 매시간 실행된다는 의미일 수 있습니다 . 로그 순환 작업이 다시 실행되거나 수동으로 실행되면 로그가 순환되어야 합니다.

답변2

Alpine Linux에서는 cron이 기본적으로 시작되지 않습니다. 따라서 어떤 폴더의 작업도 실행되지 않습니다. 해결책은 cron을 시작하는 것입니다crond

관련 정보