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
}
補充說明
備註
參考相關網頁