アクセスログの設定は以下のとおりです
cat /etc/logrotate.d/logrotate_nginx.conf
/nginx/access/logs/*.log {
rotate 2
size 1k
missingok
compress
notifempty
copytruncate
}
時間間隔の構成はありません。
これは、1キロバイトに達した後、「/ 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にある場合。そして文書によると
このオプションは、時間間隔オプションと相互に排他的です。 時間基準の後に指定されている場合、最後のローテーション時間に関係なく、ログ ファイルがローテーションされます。
Alpine Linuxでは、cronはデフォルトでは開始されません。したがって、どのフォルダー内のジョブも実行されません。解決策はcrond
でcronを開始することでした
から logrotate.status
ファイルを含めると、ログが最後に11:00にローテーションされたように見えます。ディレクトリリストから、ファイルがその後更新されたことがわかります。
これは、logrotate
ジョブが1時間ごとに実行されることを意味している可能性があります。ログローテーションジョブを再度実行するとき、または手動で実行するときに、ログをローテーションする必要があります。