架构师

您现在的位置是:首页 > 技术博客 > 爱运维

爱运维

实用shell脚本--一键配置tomcat定期日志清理功能

头条 2019-07-17爱运维
概述日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到。对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个
概述

日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到。对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题。除此之外,处理一个单个的庞大日志文件也常常是件十分棘手的事。

logrotate是个十分有用的工具,它可以自动对日志进行截断(或轮循)、压缩以及删除旧的日志文件。例如,你可以设置logrotate,让/var/log/foo日志文件每30天轮循,并删除超过6个月的日志。配置完后,logrotate的运作完全自动化,不必进行任何进一步的人为干预。

因为服务器比较多,所以简单写了个shell脚本来直接配置logrotate。

logrotate配置文件说明实用shell脚本--一键配置tomcat定期日志清理功能 Logrotate的记录日志

logrotate自身的日志通常存放于/var/lib/logrotate/status目录。如果处于排障目的,我们想要logrotate记录到任何指定的文件,我们可以指定像下面这样从命令行指定。

[root@clsn6 ~]# logrotate -vf -s /var/log/logrotate-status /etc/logrotate.d/log-file tomcat设置自动切割

对于catalina,localhost,manager,host-manager这四类日志,使用tomcat 8.5.24版本后新添加的maxDays属性进行管理。打开日志配置,将日志配置为3天后自动删除

#vim $tomcat/conf/logging.properties

1catalina.org.apache.juli.AsyncFileHandler.maxDays = 3 2localhost.org.apache.juli.AsyncFileHandler.maxDays = 3 3manager.org.apache.juli.AsyncFileHandler.maxDays = 3 4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 3

对于catalina.out标准输入输出日志,使用linux自带的logrotate进行管理。将日志配置为3天后自动删除

#vim /etc/logrotate.d/tomcat

$tomcat/logs/catalina.out { daily #logrotate周期 rotate 3 #保存多久 missingok notifempty #如果是空文件的话,不转储 compress } shell脚本配置tomcat自动切割

1、脚本内容

#!/bin/bash #copyright by hwb --2019/7/12 tomcat=/home/tomcat8052 #配置catalina,localhost,manager,host-manager日志保留3天 cat << EOF >> $tomcat/conf/logging.properties 1catalina.org.apache.juli.AsyncFileHandler.maxDays = 3 2localhost.org.apache.juli.AsyncFileHandler.maxDays = 3 3manager.org.apache.juli.AsyncFileHandler.maxDays = 3 4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 3 EOF #logrotate配置3天 cat << EOF >> /etc/logrotate.d/tomcat $tomcat/logs/catalina.out { copytruncate daily rotate 3 missingok } EOF echo "=======配置catalina,localhost,manager,host-manager日志保留3天=========" cat $tomcat/conf/logging.properties |grep maxDays echo "=================logrotate配置catalina.out保留3天=====================" cat /etc/logrotate.d/tomcat 实用shell脚本--一键配置tomcat定期日志清理功能

2、执行脚本

执行脚本会去配置logrotate

实用shell脚本--一键配置tomcat定期日志清理功能

3、测试lorotate功能

# logrotate -d /etc/logrotate.conf 实用shell脚本--一键配置tomcat定期日志清理功能

测试成功。

文章评论