2017年9月1日 星期五

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

沒有留言:

張貼留言

kubernets service 介紹

kubernets (簡稱k8s)中的容器如果要對外服務,需要透過server元件來進行 service元件有以下幾種類型可供選擇 : clusterip : 預設類型,只在k8s cluster內部IP中提供服務,外部無法訪問 nodeport : 在每個n...