zoukankan      html  css  js  c++  java
  • shell脚本切割tomcat日志文件

    转自:http://www.cnblogs.com/lishun1005/p/6054816.html

    鉴于在调试logback和log4j的文件切割一直无法成功,随性用shell写个脚本用来切割tomcat下的日志文件(大家如果有在logback或log4j使用文件切割成功的话,可以留下使用方式,先谢谢了)

    1:废话少说,直接贴上脚本:

    #!/bin/sh
    log_dir=/var/log/tomcat
    monitor_file=$1 #tomcat目录下的catalina.out文件的绝对路径
    file_size=`du  -m $monitor_file | awk '{print $1}'`
    if [ $file_size -ge  100 ]
    then
            if [ ! -d $log_dir ]
            then
                    mkdir /var/log/tomcat   #创建保存切割文件目录,这个路径可以自行修改,保存到你想要的目录
            fi
            cp $1 /var/log/tomcat/log-`date +%Y-%m-%d-%H%M%S`.log   #保存日志文件
            echo `date +%Y-%m-%d-%H:%M:%S`":文件切割"  >>/var/log/tomcat/split.log  #记录切割日志
            echo "" > $1    #清空tomcat的log/catalina.out文件内容
    fi

    说明:这个脚本很简单,linux用个定时器没分钟定时扫描日志文件的大小,就是当文件大于100M的时候,先把文件复制到指定的目录,再清空原先tomcat的日志文件。这里是用crontab来使用定时器,至于这个命令的语法在这里就不多说,有兴趣的可以自行google,这里还是有个小小的不足,因为是按每分钟定时去扫描日志文件,所以最后切割文件大小还是会在100~102M之间。

    然后就用定时器,定时执行这个脚本

    2:用 crontab -e 编辑定时器代码

    */1 * * * *  sh /lee_js/monitor_script.sh  /opt/apache-tomcat-7.0.67/logs/catalina.out #第一个路径是脚本的路径,第二个参数是tomcat下catalina.out文件的绝对路径

    然后保存

    至此搞定日志切割

    注:若没有crontab命令 可使用 yum安装:

    yum install vixie-cron
    yum install crontabs

    若文章在表述和代码方面如有不妥之处,欢迎批评指正。留下你的脚印,欢迎评论!希望能互相学习

    作者:Kero小柯
    出处:http://www.cnblogs.com/kesimin/
    本文版权归作者和博客园共有,欢迎转载,但必需注明出处,并且在文章页面明显位置给出原文连接。

  • 相关阅读:
    centos 安装 TortoiseSVN svn 客户端
    linux 定时任务 日志记录
    centos6.5 安装PHP7.0支持nginx
    linux root 用户 定时任务添加
    composer 一些使用说明
    laravel cookie写入
    laravel composer 安装指定版本以及基本的配置
    mysql 删除重复记录语句
    linux php redis 扩展安装
    linux php 安装 memcache 扩展
  • 原文地址:https://www.cnblogs.com/kesimin/p/8493884.html
Copyright © 2011-2022 走看看