Linux logrotate 設定
在 Linux 如果用套件管理工具 (例如 yum/apt-get) 安裝套件,一般會設定好 logrotate 做記錄檔輪替,但如果套件是自行編譯安裝, 或者是自行開發的系統,除了可以自行編譯記錄檔輸替的功能外,也可以用 logrotate 實現。
logrotate 的設定檔是 /etc/logrotate.conf 用作設定 logrotate 的預設參數,
而 /etc/logrotate.d/ 目錄下建立需要輪替的記錄檔,每項服務一個檔案, 這樣對日後維護及管理也會較方便。
先建立一個新的 Logrotate 設定檔 :
# vi /etc/logrotate.d/rotatetest
加入以下內容 :
/var/log/rotatetest.log {
create 0600 root root
daily
missingok
notifempty
compress
size 10M
}
上面設定項目的說明 :
- create – 建立新檔案,owner 及 group 是 root,權限是 600
- daily – 每天檢查一次記錄檔
- missingok – 如果記錄檔不存在不會輸出錯誤
- notifempty – 如果記錄檔空白, 不會做輪替
- compress – 壓縮舊記錄檔
- size – 如果記錄檔大過 10MB 便會做輪替
儲存設定檔後,logrotate 便會生效,可以對 logrotate 進行測試,建立一個測試用的記錄檔 :
# echo “test” > /var/log/rotatetest.log
由於上面的測試記錄檔只有一行資料,未達到設定的 10MB 輪替容量,可以在 logrotate 後面加上 -f 參數進行測試
-f 代表不論檔案大小均會強制輸替,但請注意,下面指令會對 /etc/logrotate.d/ 目錄下所有設定檔的項目進行輪替 :
# logrotate -f /var/log/rotatetest.log
打完收工