Linux logrotate 記錄檔輪替

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

打完收工