Docker
僅使用 size 選項的 logrotate 不會旋轉。這是在 Alpine docker 容器內
我有以下訪問日誌的配置
cat /etc/logrotate.d/logrotate_nginx.conf /nginx/access/logs/*.log { rotate 2 size 1k missingok compress notifempty copytruncate }
沒有時間間隔配置。
這應該意味著它在 ‘/nginx/access/logs/’ 處的日誌達到 1 KiloByte 後輪換日誌,對嗎?
但這是現在的日誌輪換
/ # 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。因此,任何文件夾中的作業都不會被執行。解決方案是啟動 cron
crond
從
logrotate.status
您包含的文件中,看起來日誌最後一次輪換是在 11:00,並且從目錄列表中可以看到文件在那之後進行了更新。這可能意味著
logrotate
作業每小時執行一次。當日誌輪換作業再次執行或手動執行時,應輪換您的日誌。