logrotate程序是一個(gè)日志文件管理工具技俐。用來把舊的日志文件刪除昼牛,并創(chuàng)建新的日志文件,我們把它叫做“轉(zhuǎn)儲(chǔ)”蝠咆。我們可以根據(jù)日志文件的大小踊东,也可以根據(jù)其天數(shù)來轉(zhuǎn)儲(chǔ),這個(gè)過程一般通過cron程序來執(zhí)行刚操。
logrotate程序還可以用于壓縮日志文件闸翅,以及發(fā)送日志到指定的E-mail。
logrotate的配置文件是/etc/logrotate.conf菊霜。主要參數(shù)如下表:
參數(shù)功能
compress通過gzip壓縮轉(zhuǎn)儲(chǔ)以后的日志
nocompress不需要壓縮時(shí)坚冀,用這個(gè)參數(shù)
copytruncate用于還在打開中的日志文件,把當(dāng)前日志備份并截?cái)?/p>
nocopytruncate備份日志文件但是不截?cái)?/p>
create mode owner group轉(zhuǎn)儲(chǔ)文件鉴逞,使用指定的文件模式創(chuàng)建新的日志文件
nocreate不建立新的日志文件
delaycompress和compress一起使用時(shí)记某,轉(zhuǎn)儲(chǔ)的日志文件到下一次轉(zhuǎn)儲(chǔ)時(shí)才壓縮
nodelaycompress覆蓋delaycompress選項(xiàng),轉(zhuǎn)儲(chǔ)同時(shí)壓縮构捡。
errors address專儲(chǔ)時(shí)的錯(cuò)誤信息發(fā)送到指定的Email地址
ifempty即使是空文件也轉(zhuǎn)儲(chǔ)液南,這個(gè)是logrotate的缺省選項(xiàng)。
notifempty如果是空文件的話叭喜,不轉(zhuǎn)儲(chǔ)
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è)目錄下
prerotate/endscript在轉(zhuǎn)儲(chǔ)以前需要執(zhí)行的命令可以放入這個(gè)對(duì),這兩個(gè)關(guān)鍵字必須單獨(dú)成行
postrotate/endscript在轉(zhuǎn)儲(chǔ)以后需要執(zhí)行的命令可以放入這個(gè)對(duì),這兩個(gè)關(guān)鍵字必須單獨(dú)成行
daily指定轉(zhuǎn)儲(chǔ)周期為每天
weekly指定轉(zhuǎn)儲(chǔ)周期為每周
monthly指定轉(zhuǎn)儲(chǔ)周期為每月
rotate count指定日志文件刪除之前轉(zhuǎn)儲(chǔ)的次數(shù)譬涡,0指沒有備份闪幽,5指保留5個(gè)備份
tabootext [+] list讓logrotate不轉(zhuǎn)儲(chǔ)指定擴(kuò)展名的文件,缺省的擴(kuò)展名是:.rpm-orig, .rpmsave, v,和~
size size當(dāng)日志文件到達(dá)指定的大小時(shí)才轉(zhuǎn)儲(chǔ)涡匀,Size可以指定bytes (缺省)以及K (sizek)或者M(jìn) (sizem).
參數(shù)
配置
dateext:文件后綴是日期格式,也就是切割后文件是:xxx.log-20150529(.gz) 這樣,如果注釋掉,切割出來是按數(shù)字遞增,即前面說的 xxx.log-1(.gz)
monthly: 日志文件將按月輪循盯腌。其它可用值為‘daily’,‘weekly’或者‘yearly’陨瘩。
rotate n: 一次將存儲(chǔ)n個(gè)歸檔日志腕够。對(duì)于第n=1個(gè)歸檔,時(shí)間最久的歸檔將被刪除舌劳。
compress: 在輪循任務(wù)完成后帚湘,已輪循的歸檔將使用gzip進(jìn)行壓縮。相反的命令是nocompress
delaycompress: 總是與compress選項(xiàng)一起用甚淡,delaycompress選項(xiàng)指示logrotate不要將最近的歸檔壓縮大诸,壓縮將在下一次輪循周期進(jìn)行。
missingok: 在日志輪循期間贯卦,任何錯(cuò)誤將被忽略资柔,例如“文件無法找到”之類的錯(cuò)誤。
notifempty: 如果日志文件為空撵割,輪循不會(huì)進(jìn)行贿堰。相反命令ifempty是缺省值
prerotate/endscript:在轉(zhuǎn)儲(chǔ)以前需要執(zhí)行的命令可以放入這個(gè)對(duì),這兩個(gè)關(guān)鍵字必須單獨(dú)成行
postrotate/endscript:在轉(zhuǎn)儲(chǔ)以后需要執(zhí)行的命令可以放入這個(gè)對(duì)啡彬,這兩個(gè)關(guān)鍵字必須單獨(dú)成行
sharedscripts:所有的日志文件都輪轉(zhuǎn)完畢后統(tǒng)一執(zhí)行一次腳本
olddir轉(zhuǎn)儲(chǔ)后的日志文件放入指定的目錄羹与,必須和當(dāng)前日志文件在同一個(gè)文件系統(tǒng)
##操作 路徑/etc/logrotate.conf為默認(rèn)的配置路徑,配置特定的日志處理外遇,一般放在/etc/logrotate.d/下注簿。在logrotate.conf中 使用include path包含對(duì)應(yīng)路徑
要調(diào)用為/etc/lograte.d/下配置的所有日志調(diào)用logrotate:logrotate/etc/logrotate.conf
要為某個(gè)特定的配置調(diào)用logrotate
logrotate /etc/logrotate.d/log-file
排障過程中的最佳選擇是使用-d選項(xiàng)以預(yù)演方式運(yùn)行l(wèi)ogrotate契吉。要進(jìn)行驗(yàn)證跳仿,不用實(shí)際輪循任何日志文件,可以模擬演練日志輪循并顯示其輸出捐晶。
logrotate-d/etc/logrotate.d/log-file
即使輪循條件沒有滿足菲语,我們也可以通過使用-f選項(xiàng)來強(qiáng)制logrotate輪循日志文件,-v參數(shù)提供了詳細(xì)的輸出惑灵。
logrotate -vf /etc/logrotate.d/log-file