从实列中学习linux shell7:shell 脚本 每天凌晨2点 重启tomcat 暂时解决内存溢出问题

每天凌晨2点自动重启Tomcat以暂时解决内存溢出问题,目的学习 ps awk 以及| 管道命令的应用


1. 创建重启脚本 restart_tomcat.sh

#!/bin/bash

# 修改以下路径为你的Tomcat实际安装路径
TOMCAT_HOME="/opt/tomcat"
LOG_FILE="/tmp/tomcat_restart.log"

# 记录重启时间
echo "=== 开始重启Tomcat [$(date +'%F %T')] ===" >> $LOG_FILE

# 1. 停止Tomcat
$TOMCAT_HOME/bin/shutdown.sh >> $LOG_FILE 2>&1

# 等待5秒确保进程结束
sleep 5

# 2. 检查并强制终止残留进程(如果有)
TOMCAT_PID=$(ps -ef | grep $TOMCAT_HOME | grep java | awk '{print $2}')
if [ -n "$TOMCAT_PID" ]; then
  echo "检测到Tomcat进程 $TOMCAT_PID 仍在运行,强制终止..." >> $LOG_FILE
  kill -9 $TOMCAT_PID >> $LOG_FILE 2>&1
  sleep 2
fi

# 3. 启动Tomcat
$TOMCAT_HOME/bin/startup.sh >> $LOG_FILE 2>&1

echo "=== 重启完成 [$(date +'%F %T')] ===" >> $LOG_FILE

2. 赋予脚本执行权限

chmod +x /path/to/restart_tomcat.sh

3. 配置Cron定时任务

# 编辑当前用户的crontab
crontab -e

在文件末尾添加:

0 2 * * * /path/to/restart_tomcat.sh

4. 验证配置

  • 手动测试脚本

    /path/to/restart_tomcat.sh
    

    检查日志 /tmp/tomcat_restart.log 确认无报错。

  • 检查Cron日志(可选):

    tail -f /var/log/cron
    

注意事项

  1. 路径适配:确保脚本中的 TOMCAT_HOME 与实际安装路径一致。
  2. 权限问题:如果Tomcat需要特定用户权限,可在脚本中使用 sudo -u tomcat_user 或直接以对应用户部署脚本。
  3. 内存溢出根治建议
    • 调整JVM参数(如 -Xmx 增加堆内存)。
    • 使用内存分析工具(如VisualVM、MAT)查找内存泄漏。
    • 检查应用代码或第三方库是否存在资源未释放问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一刀到底211

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值