标签: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 -d‘7 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 -d‘7 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
每天凌晨两点执行切割和清理。
标签:ali linu 文件 并且 防止 需要 logs col 一段
原文地址:https://www.cnblogs.com/makes/p/13043690.html