Linux 下tomcat 定时重启及 logs 日志定时分割清除脚本

#!/bin/bash
. /etc/profile
tomcatPath="/usr/local/tomcat"
binPath="$tomcatPath/bin"
echo "[info][$(date +'%F %H:%M:%S')]正在监控tomcat,路径:$tomcatPath"
pid=`ps -ef | grep tomcat | grep -w $tomcatPath | grep -v 'grep' | awk '{print $2}'`
if [ -n "$pid" ]; then
echo "[info][$(date +'%F %H:%M:%S')]tomcat进程为:$pid"
echo "[info][$(date +'%F %H:%M:%S')]tomcat已经启动,准备使用shutdown命令关闭..."
$binPath"/shutdown.sh"
sleep 5
pid=`ps -ef | grep tomcat | grep -w $tomcatPath | grep -v 'grep' | awk '{print $2}'`
if [ -n "$pid" ]; then
echo "[info][$(date +'%F %H:%M:%S')]使用shutdown命令关闭失败,准备kill进程..."
kill -9 $pid
echo "[info][$(date +'%F %H:%M:%S')]kill进程完毕!"
sleep 1
else
echo "[info][$(date +'%F %H:%M:%S')]使用shutdown命令关闭成功!"
fi
else
echo "[info][$(date +'%F %H:%M:%S')]tomcat未启动!"
fi
echo "[info][$(date +'%F %H:%M:%S')]准备启动tomcat..."
sleep 5
$binPath"/startup.sh"

1.上面是重启启动脚本,先shutdown,停顿5秒 如果没有用就直接kill掉,等待5秒 后重新启动  . /etc/profile  等于 source  /etc/profile

2.crontab -l 查看定时任务,crontab -e 编辑定时任务 添加下面内容到里面,这样天凌晨1点就会执行 

# 定时重启tomcat
00 01 * * * /root/restart.sh > /root/restart-tomcat.txt   
# 定时删除tomcat/logs/ 下的7天前日志
00 02 * * * find /data/apache-tomcat-7.0.68/logs/ -type f -mtime +7 | xargs rm -rf  &>/dev/null

3.如果没生效 重启下  systemctl restart crond.service   

4. 使用find查询7天前更改的日志文件 并删除

# 使用find查询7天前更改的日志文件 并删除
find ./ -type f -mtime +7 | xargs rm -rf  &>/dev/null

5. 补充一个 nginx 日志分割的脚本 只要添加到 定时任务中即可分割

#!/bin/bash
LOG_PATH="/usr/local/nginx/logs"
RECORD_TIME=$(date -d "yesterday" +%Y-%m-%d+%H:%M)
echo $RECORD_TIME
PID=/usr/local/nginx/logs/nginx.pid
mv ${LOG_PATH}/access.log ${LOG_PATH}/access.${RECORD_TIME}.log
mv ${LOG_PATH}/error.log ${LOG_PATH}/error.${RECORD_TIME}.log
# 向Nginx主进程发送信号,重新打开日志文件
kill -USR1 `cat $PID`

6.tomcat的catalina.out 日志文件过大就要进行分割,要不然会影响运行,这里我们使用linux的

logrotate进行处理;        

1)在/etc/logrotate.d/目录下新建一个名为tomcat_rzfg的文件(可自定义),# 号的备注信息需要去掉,可以参考原有logrotate.d 目录下的文件,也可以自己修改

# catalina.out文件路径
/data/apache-tomcat-7.0/logs/catalina.out{
    copytruncate  # 创建新的catalina.out副本后,截断源catalina.out文件
    daily  # 每天进行catalina.out文件的轮转
    rotate 14  # 至多保留14个副本
    missingok # 如果要轮转的文件丢失了,继续轮转而不报错
    compress # 使用压缩的方式(非常有用,节省硬盘空间;一个2~3GB的日志文件可以压缩成60MB左右)
    notifempty # 为空不进行
    size 500M # 当catalina.out文件大于30MB时,就轮转
}

 2)以上是程序自动完成的,不需要我们干预。当然了,我们也可以使用手工的方式进行logrotate程序。在命令行进行如下运行:

        logrotate /etc/logrotate.conf
或者只轮转刚刚的tomcat配置文件,可以这样运行:

        logrotate --force /etc/logrotate.d/tomcat_tyzc   
-- 命令二
        logrotate -v -f tomcat
-- 常用操作单个

参考:icon-default.png?t=M5H6https://blog.csdn.net/weixin_46633791/article/details/107279676 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值