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

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

原文地址:https://www.cnblogs.com/kesimin/p/8493884.html

时间: 2024-09-30 19:05:03

shell脚本切割tomcat日志文件的相关文章

Shell脚本实现 tomcat 日志定时切割

日志切割的意义: 在生产环境中,当我们使用tomcat服务时,如果用户量过多,有没有日志切割,将会产生很大的日志,一天的日志都能有好几个G大小.当我们需要查看日志记录时,非常麻烦.因此,日志切割是很有必要的! 1.编写shell脚本 vim fengelog.sh #脚本声明 #!/bin/bash . /etc/profile . ~/.bash_profile #定义日志文件目录 applog_path=/usr/local/apache-tomcat-app/logs sapplog_pa

使用logrotate切割tomcat日志文件

最近由于tomcat 的catalina.out日志太大,需要做切割 使用logrotate切割方法如下: 1.添加工程配置文件 cd /etc/logrotate.d 添加 Inceptor文件 /usr/local/tomcat7.inceptor-web_8080/logs/catalina.out { #rotate 31         daily         copytruncate         compress         notifempty         miss

[linux] shell脚本编程-统计日志文件中的设备号发通知邮件

1.日志文件列表 比如:/data1/logs/2019/08/15/ 10.1.1.1.log.gz 10.1.1.2.log.gz 2.统计日志中的某关键字shell脚本 zcat *.gz|grep 关键字 |grep -oP "deviceid=[^=]+"|uniq|sort -u > /tmp/20190815.log date 格式化出年月等信息,拼接成路径 wc -l /tmp/20190815.log , 获取到行数 php /xxxxx/sendmail.ph

使用Shell脚本删除/清空日志文件

话不多少,直接上代码: #!/bin/bash workdir=("/home/Tax_Punish_Ret/log_txt") #可填写多个路径, 用空格隔开 # 查找日志文件 for wdir in ${workdir[@]} do echo filepath is $wdir if [ $wdir = ${workdir[0]} ] ;then fileStr=`find $wdir/*.log` echo files is $fileStr else fileStr=`find

shell方式切割tomcat日志

#!/bin/bash while true do cd /usr/local/tomcat/logs d=`date +%Y%m%d` d15=`date -d'15 day ago' +%Y%m%d` cp catalina.out /opt/logs/catalina.out.${d} echo "" > catalina.out rm -rf catalina.out.${d15} sleep 86400 done 每天切割一次,并删除15天之前的日志: 放到后台执行:y

Linux下添加shell脚本使得nginx日志每天定时切割压缩

Linux下添加shell脚本使得nginx日志每天定时切割压缩一 简介 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常时查日志,还是使用"GoAccess"等工具对日志进行分析都将会变得非常麻烦.因此,每天定时对nginx日志进行切割压缩就非常有必要了 二 实现 我的实现思路是每天晚上接近12点时定时执行脚本.其脚本内容就是将当前的nginx日志先按照当天日期进行重命名接着进行压缩,最后是新建空白的ngi

shell脚本分析apache日志状态码

一.首先将apache日志按天切割 vi /etc/httpd/conf/httpd.confErrorLog "|rotatelogs /var/log/httpd/%Y%m%derror_log 86400 480″CustomLog "|rotatelogs /var/log/httpd/%Y%m%daccess_log 86400 480″ combined 二.重启apache服 service httpd restart ##################apahce日志

Linux下shell脚本监控Tomcat的状态并实现自动启动

最近公司需要在Linux下监控tomcat的服务,一旦tomcat服务存在异常或者宕机,重启tomcat保证服务的正常运行,由于Linux下有Shell脚本可以实现此效果,下面是Linux下shell脚本监控Tomcat的状态并实现自动启动的步骤. 1.编写Shell脚本monitor.sh #!/bin/sh # func:自动监控tomcat脚本并且执行重启操作# author:EagleHao# date:2018-04-08# DEFINE # 获取tomcat进程ID(其中[grep

用Shell脚本动态分析maillog日志,把恶意IP用防火墙禁止

用Shell脚本动态分析maillog日志,把恶意IP用防火墙禁止 系统环境:Centos 6.5 x64 Postfix邮件系统装好后,发现maillog中太多"SASL LOGIN authentication failed"垃圾IP地址.此脚本用于定期自动的将垃圾IP加入到防火墙中,直接拒绝掉.maillog部分信息如下 用户可以根据自己日志文件中的关键字,灵活的来调整要加入到防火墙当中的IP地址. Jun 11 03:58:36 host postfix/smtpd[11783