很多軟體都自帶切割日志,比如tomcat可以按時間來命名.rsyslog可按日期生成檔案,但是并不支援用"%$year%-%$month%-%$day%"這些變量來讀取檔案(目前版本号:rsyslog-8.17.0-1.el6.x86_64)。
那麼,就要用到日志輪詢logrotate。
-
概要,配置。
全局配置:/etc/logrotate.conf
局部配置:/etc/logrotate.d/ 為了便于管理,自定義的配置都放到/etc/logrotate.d/裡
-
使用。
建立檔案tomcat-log.conf,這個檔案名可以随便起,可以沒有字尾。
vi /etc/logrotate.d/tomcat-log.conf
#tomcat裡catalina.out日志路徑
/tomcat/logs/catalina.out {
#按天執行
daily
#按日期儲存舊檔案
dateext
#保留10個備份
rotate 10
#忽略錯誤
missingok
#日志為空,則不輪詢
notifempty
#建立指定使用者和權限的檔案,同時logrotate修改舊檔案名
create 644 root root
#截斷
copytruncate
#輪詢多個檔案後,但隻執行一次指令postrotate腳本在壓縮了日志
sharedscripts
postrotate
service rsyslog restart
endscript
}
3.測試
參數:-d(演練不産生實際日志,推薦);-f(強制輪詢日志)
logrotate -f /etc/logrotate.d/tomcatlog.conf
效果:
參考文章:
http://linux.cn/article-4126-1.html
http://blog.csdn.net/cjwid/article/details/1690101
https://blog.linuxeye.com/313.html