supervisor+logrotate切割supervisor日志

前言

supervisor標(biāo)準(zhǔn)輸出是單個(gè)日志文件,logrotate是linux自帶(如果沒有就自己安裝)的日志切割神器(日志輪轉(zhuǎn)工具,可以自動(dòng)對(duì)日志文件提供截?cái)?、壓縮以及輪轉(zhuǎn)的功能)

配置logrotate

vi /etc/logrotate.d/supervisor

##內(nèi)容長(zhǎng)這樣
/var/log/supervisor_log/*.log { #這一行是說明日志的位置
       missingok    #如果日志丟失,不報(bào)錯(cuò)繼續(xù)滾動(dòng)下一個(gè)日志
       daily            #指定轉(zhuǎn)儲(chǔ)周期為每天
       rotate 30    #指定日志文件刪除之前轉(zhuǎn)儲(chǔ)的次數(shù),0 指沒有備份,30 指保留30 個(gè)備份
       dateyesterday  #用昨天時(shí)間來創(chuàng)建日志格式
       copytruncate  #用于還在打開中的日志文件,把當(dāng)前日志備份并截?cái)?;是先拷貝再清空的方式,拷貝和清空之間有一個(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ǔ)過程。

# 其他重要參數(shù)說明                                                                                                                                    
compress                                   通過gzip 壓縮轉(zhuǎn)儲(chǔ)以后的日志
nocompress                                不做gzip壓縮處理
copytruncate                              用于還在打開中的日志文件,把當(dāng)前日志備份并截?cái)?;是先拷貝再清空的方式,拷貝和清空之間有一個(gè)時(shí)間差,可能會(huì)丟失部分日志數(shù)據(jù)。
nocopytruncate                           備份日志文件不過不截?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                           專儲(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í)行一次腳本。如果沒有配置這個(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 指沒有備份,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í)踐

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容