码迷,mamicode.com
首页 > 其他好文 > 详细

tomcat日志切割和日志定时清理

时间:2020-06-04 15:20:46      阅读:64      评论:0      收藏:0      [点我收藏+]

标签:ali   linu   文件   并且   防止   需要   logs   col   一段   

在最近项目中的tomcat日志没有做系统分割,日志越来越大,每次排查生产问题都会话好长时间,并且日志文件很大。所以就想写一个shell脚本进行定时将日志进行切割。

#!/bin/bash
source /home/mfls/.bash_profile
cd `dirname $0`
d=`date +%Y%m%d%H%M%S`
d7=`date -d7 day ago +%Y%m%d`
cd ../logs/
cp catalina.out catalina.out.${d}
echo "" > catalina.out

这个脚本每次执行的时候会将当前文件加上当时的时分秒进行分割日志。

分割后的日志名以catalina.out.20200604030303进行备份


系统正常运行一段时间后,会产生大量的切割数据,一般排查生产问题会在一周内进行排查,防止一周内未解决。所以将日志进行一个定时删除。

所以还需要一个脚本进行删除30天之前日志和其他文件。

#!/bin/sh
source /home/mfls/.bash_profile
find /home/mfls/tomcat6/logs/ -mtime +30 -name "host-manager.*" -exec rm -rf {} \;
find /home/mfls/tomcat6/logs/ -mtime +30 -name "localhost.*" -exec rm -rf {} \;
find /home/mfls/tomcat6/logs/ -mtime +30 -name "catalina.out.*" -exec rm -rf {} \;
find /home/mfls/tomcat6/logs/ -mtime +30 -name "manager.*" -exec rm -rf {} \;  

find --> 查找路径

-mtime +30 --> 表示30天之前的文件

-name "catalina.out.*" -->  表示通配文件名

* --> 表示通配符

-exec --> 表示执行

rm -rf --> 表示删除

{}--> 所有找到的内容会放入到{}中

\ --> 表示语句结束   

 


这两个文件可以整合成一个文件,写两个文件的话会显示比较方便管理

#!/bin/bash
source /home/mfls/.bash_profile
cd `dirname $0`
d=`date +%Y%m%d%H%M%S`
d7=`date -d7 day ago +%Y%m%d`
cd ../logs/
cp catalina.out catalina.out.${d}
echo "" > catalina.out
echo "日志分割完成"
find /home/mfls/tomcat6/logs/ -mtime +30 -name "host-manager.*" -exec rm -rf {} \;
find /home/mfls/tomcat6/logs/ -mtime +30 -name "localhost.*" -exec rm -rf {} \;
find /home/mfls/tomcat6/logs/ -mtime +30 -name "catalina.out.*" -exec rm -rf {} \;
find /home/mfls/tomcat6/logs/ -mtime +30 -name "manager.*" -exec rm -rf {} \;  
 

添加定时任务到linux

crontab -e

0 2 * * * /home/mfls/logs/bin/clearLogs.sh


每天凌晨两点执行切割和清理。

 

tomcat日志切割和日志定时清理

标签:ali   linu   文件   并且   防止   需要   logs   col   一段   

原文地址:https://www.cnblogs.com/makes/p/13043690.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!