(2017/5) linux 日志定时轮询流程详解 這篇解釋的更清楚
不像 Apache 預設已經設定好了,會定期整理成 access.log.1, access.log.2.gz, access.log.3.gz 等,如果你沒特別處理,Rails 底下的 log 檔案可是越長越肥。
這個系統工具是 logrotate,它的設定檔在 /etc/logrotate.conf,設定的方式還真是簡單 (參考自 Rotating Rails Log Files):
# Rotate Rails application logs
/path/to/your/rails/current/log/*.log {
daily
dateext
missingok
rotate 65535
compress
delaycompress
notifempty
copytruncate
}
其中 daily 表示每天整理,也可以改成 weekly 或 monthly
dateext 表示檔案補上 rotate 的日期
missingok 表示如果找不到 log 檔也沒關係
rotate 7 表示保留65535份
compress 表示壓縮起來,預設用 gzip。不過如果硬碟空間多,不壓也沒關係。
delaycompress 表示延後壓縮直到下一次 rotate
notifempty 表示如果 log 檔是空的,就不 rotate
copytruncate 先複製 log 檔的內容後,在清空的作法,因為有些程式一定 log 在本來的檔名,例如 rails。另一種方法是 create。
設定好之後,可以等明天,或是執行 /usr/sbin/logrotate -f /etc/logrotate.conf 看看。
簡單又實用的筆記,感謝分享!
“rotate 7 表示保留65535份” 错误