前言
supervisor標(biāo)準(zhǔn)輸出是單個(gè)日志文件沦疾,logrotate是linux自帶(如果沒(méi)有就自己安裝)的日志切割神器(日志輪轉(zhuǎn)工具,可以自動(dòng)對(duì)日志文件提供截?cái)嗌嚎s以及輪轉(zhuǎn)的功能)
配置logrotate
vi /etc/logrotate.d/supervisor
##內(nèi)容長(zhǎng)這樣
/var/log/supervisor_log/*.log { #這一行是說(shuō)明日志的位置
missingok #如果日志丟失飘千,不報(bào)錯(cuò)繼續(xù)滾動(dòng)下一個(gè)日志
daily #指定轉(zhuǎn)儲(chǔ)周期為每天
rotate 30 #指定日志文件刪除之前轉(zhuǎn)儲(chǔ)的次數(shù),0 指沒(méi)有備份伞芹,30 指保留30 個(gè)備份
dateyesterday #用昨天時(shí)間來(lái)創(chuàng)建日志格式
copytruncate #用于還在打開(kāi)中的日志文件忘苛,把當(dāng)前日志備份并截?cái)啵皇窍瓤截愒偾蹇盏姆绞匠希截惡颓蹇罩g有一個(gè)時(shí)間差扎唾,可能會(huì)丟失部分日志數(shù)據(jù)
notifempty #當(dāng)日志文件為空時(shí),不進(jìn)行輪轉(zhuǎn)
nocompress #不做gzip壓縮處理
dateext #使用當(dāng)期日期作為命名格式
}
## 保存之后進(jìn)行debug模式強(qiáng)制轉(zhuǎn)儲(chǔ)就可以看到生成了
logrotate -d -f /etc/logrotate.d/supervisor
# 如果已有日志文件的話南缓,那么下面這條命令就可以看到以日期為結(jié)尾的日志文件了
ls /var/log/supervisor_log/
logrotate相關(guān)命令和配置參數(shù)詳解
logrotate命令格式:
logrotate [OPTION...] <configfile>
-d, --debug :debug模式胸遇,測(cè)試配置文件是否有錯(cuò)誤。
-f, --force :強(qiáng)制轉(zhuǎn)儲(chǔ)文件汉形。
-m, --mail=command :壓縮日志后纸镊,發(fā)送日志到指定郵箱。
-s, --state=statefile :使用指定的狀態(tài)文件获雕。
-v, --verbose :顯示轉(zhuǎn)儲(chǔ)過(guò)程薄腻。
# 其他重要參數(shù)說(shuō)明
compress 通過(guò)gzip 壓縮轉(zhuǎn)儲(chǔ)以后的日志
nocompress 不做gzip壓縮處理
copytruncate 用于還在打開(kāi)中的日志文件收捣,把當(dāng)前日志備份并截?cái)嘟彀福皇窍瓤截愒偾蹇盏姆绞剑截惡颓蹇罩g有一個(gè)時(shí)間差罢艾,可能會(huì)丟失部分日志數(shù)據(jù)楣颠。
nocopytruncate 備份日志文件不過(guò)不截?cái)?create mode owner group 輪轉(zhuǎn)時(shí)指定創(chuàng)建新文件的屬性尽纽,如create 0777 nobody nobody
nocreate 不建立新的日志文件
delaycompress 和compress 一起使用時(shí),轉(zhuǎn)儲(chǔ)的日志文件到下一次轉(zhuǎn)儲(chǔ)時(shí)才壓縮
nodelaycompress 覆蓋 delaycompress 選項(xiàng)童漩,轉(zhuǎn)儲(chǔ)同時(shí)壓縮弄贿。
missingok 如果日志丟失,不報(bào)錯(cuò)繼續(xù)滾動(dòng)下一個(gè)日志
errors address 專(zhuān)儲(chǔ)時(shí)的錯(cuò)誤信息發(fā)送到指定的Email 地址
ifempty 即使日志文件為空文件也做輪轉(zhuǎn)矫膨,這個(gè)是logrotate的缺省選項(xiàng)差凹。
notifempty 當(dāng)日志文件為空時(shí),不進(jìn)行輪轉(zhuǎn)
mail address 把轉(zhuǎn)儲(chǔ)的日志文件發(fā)送到指定的E-mail 地址
nomail 轉(zhuǎn)儲(chǔ)時(shí)不發(fā)送日志文件
olddir directory 轉(zhuǎn)儲(chǔ)后的日志文件放入指定的目錄侧馅,必須和當(dāng)前日志文件在同一個(gè)文件系統(tǒng)
noolddir 轉(zhuǎn)儲(chǔ)后的日志文件和當(dāng)前日志文件放在同一個(gè)目錄下
sharedscripts 運(yùn)行postrotate腳本危尿,作用是在所有日志都輪轉(zhuǎn)后統(tǒng)一執(zhí)行一次腳本。如果沒(méi)有配置這個(gè)馁痴,那么每個(gè)日志輪轉(zhuǎn)后都會(huì)執(zhí)行一次腳本
prerotate 在logrotate轉(zhuǎn)儲(chǔ)之前需要執(zhí)行的指令谊娇,例如修改文件的屬性等動(dòng)作;必須獨(dú)立成行
postrotate 在logrotate轉(zhuǎn)儲(chǔ)之后需要執(zhí)行的指令罗晕,例如重新啟動(dòng) (kill -HUP) 某個(gè)服務(wù)济欢!必須獨(dú)立成行
daily 指定轉(zhuǎn)儲(chǔ)周期為每天
weekly 指定轉(zhuǎn)儲(chǔ)周期為每周
monthly 指定轉(zhuǎn)儲(chǔ)周期為每月
rotate count 指定日志文件刪除之前轉(zhuǎn)儲(chǔ)的次數(shù),0 指沒(méi)有備份小渊,5 指保留5 個(gè)備份
dateext 使用當(dāng)期日期作為命名格式
dateformat .%s 配合dateext使用法褥,緊跟在下一行出現(xiàn),定義文件切割后的文件名酬屉,必須配合dateext使用挖胃,只支持 %Y %m %d %s 這四個(gè)參數(shù)
size(或minsize) log-size 當(dāng)日志文件到達(dá)指定的大小時(shí)才轉(zhuǎn)儲(chǔ),log-size能指定bytes(缺省)及KB (sizek)或MB(sizem).
個(gè)人筆記和實(shí)踐