• 日志定时切割,以及定时删除(2种方法)


    切割catalian日志的方式有很多种,比如shell脚本的、cronolog或者通过配置log4j等等这些都可以实现。但今天我要介绍是使用logrotate来按日期生成日志。

    如果catalina.out的大小超过了2G,那么tomcat可能在没有错误提示的情况下崩溃、无法启动。所以为了避免出现这个问题,我们应该每天分割catalina.out。

    如何每天自动的分割catalina.out或者大小达到5M时切割catalina.out

    1.第一种方法

    #!/bin/sh
    #需要进行分割log的路径,该脚本一般只修改这个路径就可以用
    log_path=/root/tomcat8.0/DBS_8010/logs
    #获取当前日期
    d=`date +%Y-%m-%d`
    #cd到log_path路径下 并copy 日志文件到cron目录下
    cd ${log_path} && cp catalina.out catalina.out.$d.log
    #清空原日志文件
    echo > catalina.out
    #移除60天前的日志文件
    find $log_path -type f -mtime +60 |xargs rm -f

    配置crontab定时任务,定时直接脚本文件。
    
    
    crontab -e 打开crontab编辑; 
    编辑crontab每天晚上11点55分执行分割脚本 
    55 23 * * * /bin/sh /server/scripts/rm_logs.sh &>/dev/null
    :wq保存并退出。 crontab定时任务配置完成。
    可以通过crontab -l 检查是否设置成功
    
    
    

    第二种:

    1.新建一个文件

    在/etc/logrotate.d/ 目录下新建一个文件,命名随意。

    1 /etc/logrotate.d/tomcat

    2.复制下面的语句至上文新建的文件中

    1 /var/log/tomcat/catalina.out {   copytruncate   daily   rotate 7   compress   missingok   size 5M  }

    各个配置的具体含义:

    • 确保/var/log/tomcat/catalina.out指向你服务器中的catalina.out的地址
    • daily - 每天切割
    • rotate - 保留最多七个文件
    • compress - 压缩分割后的文件
    • size - 当catalina.out大于5M时分割

    如何起作用

    1. 每天晚上,cron daemon会自动执行/etc/cron.daily目录下的任务
    2. 这个会触发/etc/cron.daily/logrotate文件,logrotate一般是随linux按安装的。它会执行这个命令-“/etc/sbin/logrotate /etc/logrotate.conf”(注意空格)
    3. /etc/logrotate.conf 包含了/etc/logrotate.d目录下的所有脚本
    4. 这个会触发上一步你写的/etc/logrotate.d/tomcate文件

    手动执行logrotate

    执行以下语句来手动运行cron任务

    1 /usr/sbin/logrotate /etc/logrotate.conf

    logrotate的更多操作

    1 man logrotate
  • 相关阅读:
    在Centos中导入sql文件的方法
    Centos7.4 版本环境下安装Mysql5.7操作记录
    CentOS 7.4下使用yum安装MySQL5.7.20 最简单的
    MySql命令集合
    常用linux命令
    HDP Spark2 HIVE3.1 的问题
    YARN 的调度选项
    Sqoop 遇到的问题
    Kubernetes 集群部署(4) -- Node 部署
    HDP 中 yarn 和 MR2 的配置
  • 原文地址:https://www.cnblogs.com/zdqc/p/9753016.html
Copyright © 2020-2023  润新知