logrotate 記錄檔設定
記錄一下怎麼使用 logrotate 設定
運行環境
環境都是在 「Proxmox VE 」 虛擬系統上架設,都是以 「 LXC 」模式為主,除非有特殊狀況會告知使用 「 VM 」 模式
設定過程
簡單說明
- logrotate 主要的設定檔位於 /etc/logrotate.conf,其內容會類似這樣:
# 每週進行一次記錄檔輪替
weekly
# 記錄檔擁有者與群組為 root 與 syslog
su root syslog
# 保留 4 次輪替的記錄檔
rotate 4
# 輪替之後,自動建立新的記錄檔
create
# 壓縮輪替後的記錄檔
compress
# 套用一般套件的記錄檔設定
include /etc/logrotate.d
# ...
| 指令 |
說明 |
| su root syslog |
記錄檔擁有者與群組為 root 與 syslog。 |
| missingok |
忽略記錄檔不存在問題。 |
| notifempty |
不輪替空檔案。 |
| ifempty |
輪替空檔案。 |
| rotate 7 |
保留 7 次輪替的記錄檔。 |
| 指令 |
說明 |
| daily |
每日輪替。 |
| weekly |
每週輪替。 |
| monthly |
每月輪替。 |
| yearly |
每年輪替。 |
| size 100k |
檔案超過 100k 時輪替。 |
| size 2M |
檔案超過 2M 時輪替。 |
| size 1G |
檔案超過 1G 時輪替。 |
| 指令 |
說明 |
| minage 3 |
不輪替 3 天以內建立的記錄檔。 |
| maxage 30 |
保留 30 天以前的記錄檔。 |
| maxsize 100k |
搭配 daily 等間隔條件使用,檔案超過 100k 或達到間隔條件時輪替。 |
| minsize 100k |
搭配 daily 等間隔條件使用,檔案超過 100k 同時達到間隔條件時輪替。 |
| 指令 |
說明 |
| compress |
壓縮輪替後的舊記錄檔。 |
| nocompress |
不壓縮輪替後的舊記錄檔。 |
| delaycompress |
延遲壓縮記錄檔。 |
| nodelaycompress |
不延遲壓縮記錄檔。 |
| 指令 |
說明 |
| olddir /var/log/old |
將舊記錄檔放在 /var/log/old 目錄。 |
| noolddir |
將舊記錄檔放在相同目錄。 |
| createolddir 0755 root admin |
指定 0755 權限、root 使用者、admin 群組,建立舊記錄檔目錄。 |
| nocreateolddir |
不要自動建立舊記錄檔目錄。 |
| 指令 |
說明 |
| dateext |
使用日期的方式來為舊的記錄檔命名。 |
| dateyesterday |
以昨天的日期為檔案命名基準。 |
| dateformat -%Y%m%d |
設定日期格式,格式請參考 strftime 的文件。 |
| nodateext |
不使用日期來為舊的記錄檔命名。 |
| 指令 |
說明 |
| shred |
使用 shred 銷毀要刪除的記錄檔。 |
| shredcycles 3 |
設定 shred 抹除次數為 3。 |
| noshred |
不使用 shred 銷毀記錄檔。 |
sudo logrotate -d /etc/logrotate.conf
#分割設定:
#在/etc/logrotate.d/目錄下生成該tool檔案
/mnt/nginx/logs/*.log { #注意:請以自己的tool為準
daily #每天切割
size=100M #每100M做一次rotation,如果 weekly 與 size 這兩個設定都有加,表示如果檔案不到100M便不會生成rotation
dateext #%Y%m%d作為字尾
missingok #日誌不存在,分析下一個
rotate 20 #保留最近的20個備份
compress #切換之後壓縮.tar.gz
notifempty #空檔案不轉儲
create 640 root root #新日誌檔案模式 root 是使用的使用者
sharedscripts #整個日誌組執行一次的指令碼
postrotate
endscript
}
補充說明
備註
參考相關網頁