#! /bin/bash
tomcat_home=/opt/ssh-tc-server
#tomcat_home=/opt/cleanlog/server
SHUTDOWN=$tomcat_home/bin/shutdown.sh
STARTTOMCAT=$tomcat_home/bin/startup.sh
TMPLOGDIR=/oraarch/tmplog
date30=$(date -d "30 day ago" +%Y-%m-%d)
echo "`date` 关闭tomcat..." >> /opt/cleanlog/restart.log
$SHUTDOWN
ps -ef |grep tomcat |grep $tomcat_home |grep -v 'grep'|awk '{print $2}' | xargs kill -9
#先使用tomcat本身的shutdown命令关闭,再用杀进程的方式补偿,做到真正关闭tomcat
echo "`date` tomcat已关闭" >> /opt/cleanlog/restart.log
echo "`date` 清理tomcat日志..." >> /opt/cleanlog/restart.log
#删除日志文件
find $tomcat_home/logs/ -mtime +30 -name "*.log" -exec rm -rf {} \;
find $tomcat_home/logs/ -mtime +30 -name "*.txt" -exec rm -rf {} \;
#find $tomcat_home/logs/ -mtime +30 -name "*.log*" -exec rm -rf {} \;
find $tomcat_home/webapps/eapes-service/WEB-INF/logs/ -mtime +30 -name "*.log*" -exec rm -rf {} \;
find $tomcat_home/webapps/eapes-web/WEB-INF/logs/ -mtime +30 -name "*.log*" -exec rm -rf {} \;
#截断catalina.out
echo "`date` -------开始截断catalina.out-------" >> /opt/cleanlog/restart.log
echo $date30 >> /opt/cleanlog/restart.log
cp /opt/ssh-tc-server/logs/catalina.out /oraarch/tmplog
lines=$(grep -n "$date30" "$TMPLOGDIR/catalina.out" |tail -n 1| cut -d ":" -f1)
echo $lines
if [[ $lines -ge 1 ]] ;then
sed -i '1,'$lines'd' $TMPLOGDIR/catalina.out
echo "`date` -------Delete Success-------" >> /opt/cleanlog/restart.log
else echo "`date` -------No content delete-------" >> /opt/cleanlog/restart.log
fi
echo "`date` -------结束截断catalina.out-------" >> /opt/cleanlog/restart.log
rm -f /opt/ssh-tc-server/logs/catalina.out
mv /oraarch/tmplog/catalina.out /opt/ssh-tc-server/logs/
echo "`date` tomcat日志清理完毕" >> /opt/cleanlog/restart.log
sleep 5
echo "`date` 启动tomcat..." >> /opt/cleanlog/restart.log
cd $tomcat_home/bin
./startup.sh
echo "`date` tomcat启动完毕" >> /opt/cleanlog/restart.log
#看启动日志
#tail -f $tomcat_home/logs/catalina.out
Linux服务器运维:使用Crontab定期清理tomcat日志
最新推荐文章于 2023-02-16 11:23:08 发布