龙空技术网

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

波波说运维 20609

前言:

如今我们对“apache关闭logs”大致比较关切,同学们都需要知道一些“apache关闭logs”的相关文章。那么小编在网络上搜集了一些关于“apache关闭logs””的相关知识,希望看官们能喜欢,咱们快快来了解一下吧!

概述

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

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

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

logrotate配置文件说明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 = 32localhost.org.apache.juli.AsyncFileHandler.maxDays = 33manager.org.apache.juli.AsyncFileHandler.maxDays = 34host-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/12tomcat=/home/tomcat8052#配置catalina,localhost,manager,host-manager日志保留3天cat << EOF >> $tomcat/conf/logging.properties1catalina.org.apache.juli.AsyncFileHandler.maxDays = 32localhost.org.apache.juli.AsyncFileHandler.maxDays = 33manager.org.apache.juli.AsyncFileHandler.maxDays = 34host-manager.org.apache.juli.AsyncFileHandler.maxDays = 3EOF#logrotate配置3天cat << EOF >> /etc/logrotate.d/tomcat$tomcat/logs/catalina.out { copytruncate daily rotate 3 missingok}EOFecho "=======配置catalina,localhost,manager,host-manager日志保留3天========="cat $tomcat/conf/logging.properties |grep maxDaysecho "=================logrotate配置catalina.out保留3天====================="cat /etc/logrotate.d/tomcat

2、执行脚本

执行脚本会去配置logrotate

3、测试lorotate功能

# logrotate -d /etc/logrotate.conf

测试成功。

后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~

标签: #apache关闭logs