2013年4月16日 星期二

logrotate

建立編輯 /etc/logrotate.d/ 下的檔案,例如:

vim /etc/logrotate.d/asterisk

※執行 logrotate 會自動匯入/etc/logrotate.d/ 下的檔案執行

內容格式為:

/var/log/asterisk/messages {

weekly

size=100M

rotate 5

nocompress

}

※/var/log/asterisk/messages 為要進行處理的記錄檔

※weekly 為每週更換一次紀錄檔,另有 daily 每日、monthly 每月

※size=100M 為紀錄檔的上限,超過即會更換記錄檔,另有單位 k

※rotate 5 為保留紀錄檔的數量,檔名會以 messages.1~messages.5 方式命名,數字越大的越舊

※nocompress 為紀錄檔不壓縮,壓縮為 compress 

儲存後,可執行 logrotate -v -f /etc/logrotate.conf 來立即處理記錄檔的輪替



 一個典型的 logrotate.conf 如下:

errors root
compress

/var/log/httpd-access.log {
copytruncate
create 644 root wheel
weekly
rotate 7
uncompress
size=1000k
}

說明:

1. errors => 有錯誤時會 mail 一封信給 root
2. compress => 代表要使用 gzip 來壓縮
3. /var/log/http-access.log { .... } 代表一組設定
4. 在 {...} 外的表示內定值,如 compress 代表要透過 gzip 壓縮,但在 /var/log/httpd-access.log {....} 中,我們使用了 uncomress 則表示不壓縮 httpd-access.log 的備份檔
5. copytruncate => 先將日誌檔 copy 到另一個檔案儲存再清空
6. create ... => 產生一個新的 httpd-access.log 檔,644 root wheel 是這個檔案的權限設定
7. weekly 表示每個星期執行一次,另外尚有 daily 及 monthly 可用
8. rotate => 表示備份檔的數目,如 7 則最多會產生 1-7 個備份檔
9. uncompress => 不壓縮備份檔
10. size=1000k => 代表檔案大於 1000k 時就備份,另外也可使用 m 

沒有留言: