簡(jiǎn)介
linux上的自動(dòng)日志切割工具。
工作原理
在/etc/cron.daily/下面有個(gè)配置文件logrotate,所以logrotate會(huì)每天被執(zhí)行一次。logrotate的配置文件是/etc/logrotate.conf,這個(gè)里面放的是全局配置,自定義配置一般放到/etc/logrotate.d/下面。
配置
| 配置 | 意義 |
|---|---|
| compress | 默認(rèn)啟用的配置,會(huì)使用gzip壓縮歷史日志。 |
| copytruncate | 復(fù)制日志文件內(nèi)容到備份文件,然后將日志文件截?cái)嗟?。 |
| create | 直接重命名原來(lái)的日志文件,然后創(chuàng)建新的日志文件,然后讓讀寫(xiě)日志文件的進(jìn)程重新打開(kāi)日志文件。這種工作方式需要進(jìn)程能重新打開(kāi)日志文件。這種方式比copytruncate效率高很多。 |
| rotate | 保留多少個(gè)歷史文件 |
| daily | 每天切割一次日志,還可以設(shè)置為weekly,monthly |
| dateext | 歷史日志添加日期作為后綴,類(lèi)似配置dateyesterday |
| prerotate/endscript | 執(zhí)行日志切割前執(zhí)行的腳本 |
| postrotate/endscript | 執(zhí)行完日志切割后再執(zhí)行的腳本 |
實(shí)踐
在我的systemd基礎(chǔ)文章里面配置了一個(gè)monitor.service,使用vmstat記錄系統(tǒng)狀態(tài)到日志文件/home/monitor/vmstat.log,這里配置一個(gè)日志切割,將vmstat.log每天切割一次
#添加日志切割配置/etc/logrotate.d/vmstat
/home/monitor/vmstat.log {
daily
rotate 100
dateyesterday
compress
missingok
create 644 root root
prerotaet
systemctl stop mvmstat.service
endscript
postrotate
systemctl start mvmstat.service
endscript
}