切割Tomcat日志,保留三天的日志
#!/bin/bash
cd `dirname $0` #进入执行脚本所在目录,我这里是$TOMCAT_HOME/bin
DATE=`date +%Y-%m-%d` #获取当前日期
DATE3=`date -d'3 day ago' +%Y-%m-%d` #获取3天前的日期
cd ../logs/ #进入日志所在目录
cp catalina.out catalina.out.${DATE} #将当前日志的内容拷贝到以日期分割的新文件中,
echo '' > catalina.out #并清空当前日志文件的内容
rm -f catalina.out.${DATE3} #删除3天前的日志
rm -f catalina.${DATE3}.log
rm -f localhost.${DATE3}.log
rm -f localhost_access_log.${DATE3}.txt
rm -f manager.${DATE3}.log
rm -f host-manager.${DATE3}.log
日志切割并保留30天日志
#!/bin/bash
#定义日志文件目录
tomcatlog_path=/usr/local/apache-tomcat-app/logs
#定义日期格式
logdate=`date +%Y-%m-%d`
logdate30=`date -d'30 day ago' +%Y-%m-%d` #30天的日期
#切割日志
cd ${tomcatlog_path} && cp catalina.log $tomcatlog_path/catalina.log.$logdate #日志备份
echo > catalina.log #原日志清空
rm -rf $tomcatlog_path/catalina.log.$logdate30* #保留30天的日志
执行shell脚本
chmod +x cat-logs.sh
sh cat-logs.sh
添加定时任务
crontab -e
# 每天凌晨1点打包前一天日志,并清理第三十天日志
0 1 * * * /bin/sh 脚本路径/cat-logs.sh