重启tomcat脚本
vim restart.sh
- 脚本一
#!/bin/bash
#Filename: restartTomcat.sh
#Description: 重启tomcat服务
#声明环境变量,可重复使用
export LANG=zh_CN.UTF-8
export JAVA_HOME=/usr/local/jdk1.7.0_80
export JRE_HOME=${JAVA_HOME}/jre
export TOMCAT_HOME=/usr/local/apache-tomcat-7.0.108-8081
#输出开始时间
echo "[$(date +'%F %T')] >>> Tomcat begin to restart."
#关闭tomcat服务
${TOMCAT_HOME}/bin/shutdown.sh
# Kill all remaining processes 杀掉所有残留进程,不杀掉会占用系统资源
pidList=$(ps aux | grep ${TOMCAT_HOME} | grep -v grep | awk '{print $2}')
if [ "${pidList}" != "" ]
then
echo "残留的进程号:${pidList}";
for pid in $pidList; do
kill -9 $pid
echo "[$(date +'%F %T')] >>> Kill the process [$pid] successfully."
done
else
echo "无 残留的进程号";
fi
#启动tomcat服务
${TOMCAT_HOME}/bin/startup.sh
#获取重新启动后的tomcat服务的进程号
pidList2=$(ps aux | grep ${TOMCAT_HOME} | grep -v grep | awk '{print $2}')
if [ "${pidList2}" != "" ]
then
echo "启动后的进程号:${pidList2}";
echo "[$(date +'%F %T')] >>> Tomcat restart complete."
echo "本次tomcat成功重启 \n\n"
else
echo "本次tomcat服务启动出错,请查看/logs/catalina.out日志文件"
fi
- 脚本二
#!/bin/bash
tomcatPath="apache-tomcat-7.0.108-8081"
binPath="$tomcatPath/bin"
echo "[info][$(date +'%F %H:%M:%S')]正在监控tomcat,路径:$tomcatPath"
pid=`ps -ef | grep $tomcatPath | grep -w $tomcatPath | grep -v 'grep' | awk '{print $2}'`
echo "-------当前进程号:$pid----------"
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 10
echo "-------当前进程号:$pid----------"
fi
pid=`ps -ef | grep $tomcatPath | grep -w $tomcatPath | grep -v 'grep' | awk '{print $2}'`
if [ -n "$pid" ]; then
kill -9 $pid
echo "[info][$(date +'%F %H:%M:%S')]kill进程完毕!"
sleep 10
else
echo "-------当前进程号:$pid-----没有进程号说明tomcat服务已经停止了-----"
$binPath"/startup.sh"
fi
echo "[info][$(date +'%F %H:%M:%S')]tomcat未启动!"
echo "[info][$(date +'%F %H:%M:%S')]准备启动tomcat..."
$binPath"/startup.sh"
echo "-------当前进程号:$pid-----tomcat启动成功-----"
编写完毕之后给脚本增加执行权限
chmod +x restart.sh
然后建立定时任务
每隔三天的零时零分执行脚本
crontab -e
0 0 */3 * * sh /home/wuyue/restart.sh
定时关闭Tomcat
#!/bin/sh
pid=`ps -ef |grep 'apache-tomcat-7.0.103-8081/conf' |grep -w 'apache-tomcat-7.0.103-8081/conf'|grep -v 'grep'|awk '{print $2}'`
echo $pid
if [ -n "$pid" ];then
echo "===========shutdown 停服务 apache-tomcat-7.0.103-8057================"
/usr/local/apache-tomcat-7.0.103-8081/bin/shutdown.sh
sleep 3
pid=`ps -ef |grep apache-tomcat-7.0.103-8081 |grep -w 'apache-tomcat-7.0.103-8081'|grep -v 'grep'|awk '{print $2}'`
echo "查询到进程号:" $pid
if [ -n "$pid" ];then
sleep 1
echo ========kill 杀掉进程: $pid ==============
kill -9 $pid
fi
fi