很多软件都自带切割日志,比如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 效果: