linux下tomcat定时重启sh脚本

1、编写重启脚本

nano tomcat_restart.sh

方式(1)先正常shutdown,关闭失败再杀进程

#!/bin/bash
. /etc/profile
tomcatPath="/home/apache-tomcat-9.0.13"
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 2
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..."
$binPath"/startup.sh"

方式(2)直接杀进程

#!/bin/bash
. /etc/profile
tomcatPath="/home/apache-tomcat-9.0.13"
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已经启动,准备kill进程..."
	kill -9 $pid
	echo "[info][$(date +'%F %H:%M:%S')]kill进程完毕!"
	sleep 1
else
	echo "[info][$(date +'%F %H:%M:%S')]tomcat未启动!"
fi
echo "[info][$(date +'%F %H:%M:%S')]准备启动tomcat..."
$binPath"/startup.sh"

chmod +x tomcat_restart.sh

./tomcat_restart.sh

2、创建定时任务

crontab -e
no crontab for root - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/ed
  2. /bin/nano        <---- easiest
  3. /usr/bin/vim.basic
  4. /usr/bin/vim.tiny

Choose 1-4 [2]: 2

每天2点重启

0 2  * * * /root/tomcat_restart.sh >> /root/tomcat_restart.log

重启定时服务

/etc/init.d/cron stop
/etc/init.d/cron start

查看任务列表

crontab -l