1、创建日志文件备份文件夹 back_log
2、编写shell脚本,vi cut_log.sh 内容如下:
#! /bin/bash
#导入环境变量 可以使用 echo $PATH 查询环境变量信息
export PATH=/usr/local/git/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.8.0_171/bin:/usr/java/jdk1.8.0_171/jre/bin:/usr/maven/apache-maven-3.6.0/bin:/root/bin
# 日志时间
log_time=`date "+%Y-%m-%d %H:%M:%S"`
#日志路径 >>换行追加输出
log_path=/home/tomcat/cron_tomcat.log
echo $log_time 开始执行tomcat日志处理! >> $log_path
echo $log_time tomcat 启动成功 >> $log_path
#查询tomcat进程
pid=`ps -ef | grep /home/tomcat/project/ | grep -v grep |awk '{print $2}'`
if [ $pid ]; then
# 进行ID
echo $log_time App is running pid=$pid \n >> $log_path
#杀死 进程
kill -9 $pid
fi
#休息下
sleep 2
#进入 tomcat目录
cd /home/tomcat/project/
#备份日志文件时间
time_yesterday=`date -d last-day +%Y%m%d`
#备份文件名称
file_name=log.${time_yesterday}.tar.gz
echo $log_time 文件名称 file_name >>$log_path
#开始打包 logs 文件夹
tar zcvf $file_name logs/
#移动打包tar.gz 到备份目录
mv $file_name back_log/
echo $log_time 备份完成 file_name >>$log_path
#进入日志目录,删除已经打包的日志源文件
cd /home/tomcat/project/logs/
rm -rf *
echo $log_time 删除完成 file_name >>$log_path
#启动tomcat 这里不用 加 “&” 也会后台运行
/home/tomcat/project/bin/startup.sh
#查询下是否启动
pid=`ps -ef | grep /home/tomcat/project/ | grep -v grep |awk '{print $2}'`
if [ $pid ]; then
echo $log_time App is running pid=$pid \n >> $log_path
echo $log_time tomcat 启动成功 >> $log_path
else
echo $log_time tomcat 重启失败 >> $log_path
fi
echo $log_time 切分日志处理结束 >> $log_path
3、测试 ./cut_log.sh
4、加入linux 定时器 crontab -e ,输入内容如下:
0 3 * * * /home/tomcat/cut_log.sh
5、crontab 命令 重启
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置