很多软件都自带切割日志,比如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.测试