新聞中心
logrotate是個十分有用的工具,它可以自動對日志進(jìn)行截斷(或輪循)、壓縮以及刪除舊的日志文件。例如,你可以設(shè)置logrotate,讓/var/log/foo日志文件每30天輪循,并刪除超過6個月的日志。配置完后,logrotate的運作完全自動化,不必進(jìn)行任何進(jìn)一步的人為干預(yù)。

logrotate 是如何工作的
默認(rèn)情況下,logrotate 命令作為放在 /etc/cron.daily 中的 cron 任務(wù),每天運行一次,它會幫助你設(shè)置一個策略,其中超過某個時間或大小的日志文件被輪換。 命令:
/usr/sbin/logrotate
配置文件: /etc/logrotate.conf,這是 logrotate 的主配置文件。logrotate 還在 /etc/logrotate.d/ 中存儲了特定服務(wù)的配置。確保下面的那行包含在 /etc/logrotate.conf 中,以讀取特定服務(wù)日志配置。
include /etc/logrotate.d`
logrotate 歷史: /var/lib/logrotate.status
重要的 logrotate 選項:
compress --> 壓縮日志文件的所有非當(dāng)前版本
daily,weekly,monthly --> 按指定計劃輪換日志文件
delaycompress --> 壓縮所有版本,除了當(dāng)前和下一個最近的
endscript --> 標(biāo)記 prerotate 或 postrotate 腳本的結(jié)束
errors "emailid" --> 給指定郵箱發(fā)送錯誤通知
missingok --> 如果日志文件丟失,不要顯示錯誤
notifempty --> 如果日志文件為空,則不輪換日志文件
olddir "dir" --> 指定日志文件的舊版本放在 “dir” 中
postrotate --> 引入一個在日志被輪換后執(zhí)行的腳本
prerotate --> 引入一個在日志被輪換前執(zhí)行的腳本
rotate 'n' --> 在輪換方案中包含日志的 n 個版本
sharedscripts --> 對于整個日志組只運行一次腳本
size='logsize' --> 在日志大小大于 logsize(例如 100K,4M)時輪換
配置
讓我們?yōu)槲覀冏约旱氖纠罩疚募?/tmp/sample_output.log 配置 logrotate。
第一步:在 /etc/logrotate.conf 中添加以下行。
/tmp/sample_output.log {
size 1k
create 700 root root
rotate 4
compress
}
在上面的配置文件中:
size 1k - logrotate 僅在文件大小等于(或大于)此大小時運行。
create - 輪換原始文件并創(chuàng)建具有指定權(quán)限、用戶和組的新文件。
rotate - 限制日志文件輪轉(zhuǎn)的數(shù)量。因此,這將只保留最近的 4 個輪轉(zhuǎn)的日志文件。
compress - 這將壓縮文件。
第二步:通常,你需要等待一天才能等到 logrotate 由 /etc/cron.daily 執(zhí)行。除此之外,你可以用下面的命令在命令行中運行:
/usr/sbin/logrotate /etc/logrotate.conf
在執(zhí)行 logrotate 命令之前的輸出:
[root@rhel1 tmp]# ls -l /tmp/
total 28
-rw-------. 1 root root 20000 Jan 1 05:23 sample_output.log
在執(zhí)行 logrotate 之后的輸出:
[root@rhel1 tmp]# ls -l /tmp
total 12
-rwx------. 1 root root 0 Jan 1 05:24 sample_output.log
-rw-------. 1 root root 599 Jan 1 05:24 sample_output.log-20170101.gz
[root@rhel1 tmp]#
這樣就能確認(rèn) logrotate 成功實現(xiàn)了。
當(dāng)前標(biāo)題:詳解Linux日志文件管家logrotate
網(wǎng)站URL:http://www.fisionsoft.com.cn/article/cojpoji.html


咨詢
建站咨詢
