概述

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

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 = 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

2、执行脚本

执行脚本会去配置logrotate

3、测试lorotate功能

# logrotate -d /etc/logrotate.conf

测试成功。

一键配置tomcat定期日志清理功能的更多相关文章

  1. 配置Tomcat的日志系统

    成功配置tomcat的log4j日志系统,格式:HTML+每天以yyyy-mm-dd.log命名的日志文件 一.引言: 实习单位让用log4j配置webapp的日志系统,要求产生的日志文件是html格 ...

  2. 成功配置TOMCAT的LOG4J日志系统,格式:HTML+每天以YYYY-MM-DD.LOG命名的日志文件

    关于log4j.properties文件在web项目中放的位置,找过很多,最后实践结果是: 一.web项目 二.放在src的目录里面,然后项目生成后会自动在\WEB-INF\classes文件里有份l ...

  3. 配置Tomcat使用HTTP/2

    转自: https://zhuanlan.zhihu.com/p/21349186 前情提要: Tomcat高效响应的秘密(一) Sendfile与Gzip Tomcat高效响应的秘密(二) keep ...

  4. ELK收集tomcat访问日志并存取mysql数据库案例

    这个案例中,tomcat产生的日志由filebeat收集,然后存取到redis中,再由logstash进行过滤清洗等操作,最后由elasticsearch存储索引并由kibana进行展示. 1.配置t ...

  5. tomcat访问日志分析

    常使用web服务器的朋友大都了解,一般的web server有两部分日志: 一是运行中的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息 二是访问日志信息,它记录的访问的时间,IP,访问的资 ...

  6. Tomcat 修改日志输出配置 定期删除日志

    tomcat的下的日志catalina.out 和 qc.log疯狂增长,以下是解决办法 我生产环境tomcat版本 Server version: Apache Tomcat/7.0.35 Serv ...

  7. Tomcat访问日志详细配置

    在server.xml里的<host>标签下加上 <Valve className="org.apache.catalina.valves.AccessLogValve&q ...

  8. 配置Tomcat的访问日志格式化输出

    博客搬家,本文新地址:http://www.zicheng.net/article/9   本文描述如何配置tomcat的访问日志,按我们的要求输出指定的日志格式. 且在Nginx+Tomcat的配置 ...

  9. tomcat详细日志配置

    在server.xml里的<host>标签下加上<Valve className="org.apache.catalina.valves.AccessLogValve&qu ...

随机推荐

  1. HCIA-网络层包结构

    网络层 关心-->转发 IPV4协议 IPV6协议 寻址 转发 标识位置 IPV6: 86DD MAC定位局部 网络定位全局 对于上层数据如果过大,网络层可以分组,实现分组转发 环路:发送了一个 ...

  2. 从跨域与同源策略谈CSRF防御与绕过

    之前偶然看到群里有小伙汁问这个token相关的问题,当时我酝酿了一下子,没想好怎么总结,今天来说一下 CSRF在过去还属于OWASP TOP10 ,现在已经不是了(补充一点:关于OWASP API 请 ...

  3. Windows提权小结

    摸鱼的时候,想想内网这部分还有什么地方适合水一下,翻翻往期,开始填坑 总结一下Windows提权的部分,以后有时间再补一下Linux提权 这仍然是一篇思路总结类的随笔,具体细节内容不展开,也展开不了. ...

  4. RocketMQ可视化控制台

    中午文档 https://github.com/apache/rocketmq-externals/blob/master/rocketmq-console/doc/1_0_0/UserGuide_C ...

  5. Jpa-操作mongodb

    pom <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spr ...

  6. jpa中使用Query判断条件查询

    jpa中使用Query判断条件查询 @Query(value = " select m.* from mining_area as m " + " where 1 = 1 ...

  7. Tcp三次握手中细节

    TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接,如下图所示.主机A为客户机,主机B为服务器 说明:(1)第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B ...

  8. HttpURLConnection 中Cookie 使用

    方式一: 如果想通过 HttpURLConnection 访问网站,网站返回cookie信息,下次再通过HttpURLConnection访问时,把网站返回 cookie信息再返回给该网站.可以使用下 ...

  9. 并发编程之:synchronized

    大家好,我是小黑,一个在互联网苟且偷生的农民工. 之前的文章中跟大家分享了关于Java中线程的一些概念和基本的使用方法,比如如何在Java中启动一个线程,生产者消费者模式等,以及如果要保证并发情况下多 ...

  10. Bing每日壁纸的RESTful接口实现

    0x00 存在意义 权且当作Docker打包的练习. 显然可以通过构造请求获得每天的壁纸,但是如果想要优雅地在其它地方使用这一网络资源,封装一个RESTful API将会保证整洁美观,在编写CSS等场 ...