1.利用syslog-ng的服务,在Linux的中可以轻松的完成对日志的管理工作, 本文以tomcat为例循环限制tomcat日志
1.利用Syslog-ng服务,在linux中可以轻松的完成对日志的管理工作
新加入日志管理工具,建立tomcat脚本 vim /etc/logrotate.d/tomcat-file 加入tomcat日志循环切割限制:
/home/smp/tomcat9/logs/catalina.out
{
size 500M
create
rotate 10
compress
copytruncate
}
其中上面的配置文件代表:500M进行一次切割,允许日志管理服务进行日志的创建,从第一个文件开始循环,循环最大次数是10次,也就是最大保存5G的tomcat日志,达到10数量后,会将之前的进行删除。
其基础配置还有:
monthly: 日志文件将按月轮循。其它可用值为‘daily’,‘weekly’或者‘yearly’。
rotate 5: 一次将存储5个归档日志。对于第六个归档,时间最久的归档将被删除。
compress: 在轮循任务完成后,已轮循的归档将使用gzip进行压缩。
delaycompress: 总是与compress选项一起用,delaycompress选项指示logrotate不要将最近的归档压缩,压缩将在下一次轮循周期进行。这在你或任何软件仍然需要读取最新归档时很有用。
missingok: 在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误。
notifempty: 如果日志文件为空,轮循不会进行。
create 644 root root: 以指定的权限创建全新的日志文件,同时logrotate也会重命名原始日志文件。
postrotate/endscript: 在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行。在这种情况下,rsyslogd 进程将立即再次读取其配置并继续运行。
全部配置完成后执行 :logrotate /etc/logrotate.d/tomcat-file 对切割循环tomcat日志进行生效
其他拓展命令:
logrotate /etc/logrotate.conf:重新读取配置文件,并对符合条件的文件文件进行rotate。
logrotate -d /etc/logrotate.conf:调试模式,输出调试结果,但并不执行。
logrotate -f /etc/logrotate.conf:强制模式,对所有相关文件进行rotate。
设置定时检查的定时任务 crontab -e 然后加入此行 5分钟进行一次循环
*/5 * * * * /usr/sbin/logrotate /etc/logrotate.d/tomcat-file