Linux 下tomcat 定时重启脚本

434 阅读1分钟
    #!/bin/bash
    . /etc/profile
    tomcatPath="/data/apache-tomcat-7.0.68"
    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"

    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已启动tomcat"
    else
    echo "[info][$(date +'%F %H:%M:%S')]tomcat启动失败"
    fi

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

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

      00 01 * * * /root/restart.sh > /root/restart-tomcat.txt   

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