サイズオプションのみを使用したログ回転は回転しません。これはアルパインドッカーコンテナ内にあります。

サイズオプションのみを使用したログ回転は回転しません。これはアルパインドッカーコンテナ内にあります。

次のアクセスログ設定があります。

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

関連情報