zoukankan      html  css  js  c++  java
  • 一键配置tomcat定期日志清理功能

    概述

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

    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定期日志清理功能

     

    测试成功。

  • 相关阅读:
    知识点整理
    NGINX 内存池有感
    NGINX怎样处理惊群的
    NGINX 定时器
    制作linux内核安装包
    ES6变量的解构赋值
    jquery uploadify上传插件用法心得
    【转贴】J2EE中的13种技术规范
    【转帖】Servlet 3.0 新特性详解
    汉诺塔问题的一个C#实现
  • 原文地址:https://www.cnblogs.com/keystone/p/11193532.html
Copyright © 2011-2022 走看看