#/bin/bash
#############################################
#uthor zhao yanan
# date 2010/08/23
# update 2011/01/10
# Automatic detection and restart tomcat
#############################################
#脚本可写入到自动任务中,执行周期可根据tomcat起停时间长短来定,如下,每天0点到20点之间每隔10分钟检查一次
#echo "*/10 0-20 * * * root /root/script/tomcat_check.sh >> /root/script/tomcat_check.log 2>&1" >> /etc/crontab
date
cd /root/script
rm -f index.jsp #删除之前已下载的首页
wget -T 10 -t 3 -q http://192.168.1.1:8080/index.jsp #下载首页,失败后最多偿试3次,每次间隔10秒
if [ ! -e index.jsp ]; then #判断首页是否下载成功,如果成功,则执行接下来的任务,否则执行else后的任务。
# java Environment variables #设置jdk的环境变量,根据自已的实际情况设定
# export JAVA_HOME=/usr/java/jdk1.8.0_92
# export CLASSPATH=.:$JAVA_HOME/lib/tools.jar
# export CATALINA_HOME=/root/apache-tomcat-8.5.4-crawer
# export PATH=$JAVA_HOME/bin:$PATH
echo "restart tomcat."
# /root/tomcat/bin/shutdown.sh #关闭tomcat
# sleep 150 #等待tomcat关闭,一般是1~150s不等
# kill -9 `ps aux|grep java|grep -v grep|awk '{print $2}'` #等待时间结束后,偿试强制结束tomcat进程
# sleep 5
/root/tomcat/bin/startup.sh
sleep 5 #等待tomcat启动,一般是1~150s不等
#/usr/sbin/sendmail -t <<EOF #发送邮件通知,以下项前面请不要添加空格,生产使用时请删除此注释
#From: web server <root@localhost> #邮件发件人,生产使用时请删除此注释
#To: username@gmail.com #主送邮件地址,注意,大部分邮件接收服务器不接受没有fully-qualified的邮件,一般会失败,生产使用时请删除此注释
#Cc: username@gmail.com #抄送邮件地址,生产使用时请删除此注释
#Subject: Alarm:tomcat restart #邮件标题,生产使用时请删除此注释
#---------------------------------- #邮件内容,生产使用时请删除此注释
#In just restarted tomcat.
#----------------------------------
#EOF #该符号前面不能有空格,生产使用时请删除此注释
else
echo "checked." #首页下载成功,提示已检查
#############################################
#uthor zhao yanan
# date 2010/08/23
# update 2011/01/10
# Automatic detection and restart tomcat
#############################################
#脚本可写入到自动任务中,执行周期可根据tomcat起停时间长短来定,如下,每天0点到20点之间每隔10分钟检查一次
#echo "*/10 0-20 * * * root /root/script/tomcat_check.sh >> /root/script/tomcat_check.log 2>&1" >> /etc/crontab
date
cd /root/script
rm -f index.jsp #删除之前已下载的首页
wget -T 10 -t 3 -q http://192.168.1.1:8080/index.jsp #下载首页,失败后最多偿试3次,每次间隔10秒
if [ ! -e index.jsp ]; then #判断首页是否下载成功,如果成功,则执行接下来的任务,否则执行else后的任务。
# java Environment variables #设置jdk的环境变量,根据自已的实际情况设定
# export JAVA_HOME=/usr/java/jdk1.8.0_92
# export CLASSPATH=.:$JAVA_HOME/lib/tools.jar
# export CATALINA_HOME=/root/apache-tomcat-8.5.4-crawer
# export PATH=$JAVA_HOME/bin:$PATH
echo "restart tomcat."
# /root/tomcat/bin/shutdown.sh #关闭tomcat
# sleep 150 #等待tomcat关闭,一般是1~150s不等
# kill -9 `ps aux|grep java|grep -v grep|awk '{print $2}'` #等待时间结束后,偿试强制结束tomcat进程
# sleep 5
/root/tomcat/bin/startup.sh
sleep 5 #等待tomcat启动,一般是1~150s不等
#/usr/sbin/sendmail -t <<EOF #发送邮件通知,以下项前面请不要添加空格,生产使用时请删除此注释
#From: web server <root@localhost> #邮件发件人,生产使用时请删除此注释
#To: username@gmail.com #主送邮件地址,注意,大部分邮件接收服务器不接受没有fully-qualified的邮件,一般会失败,生产使用时请删除此注释
#Cc: username@gmail.com #抄送邮件地址,生产使用时请删除此注释
#Subject: Alarm:tomcat restart #邮件标题,生产使用时请删除此注释
#---------------------------------- #邮件内容,生产使用时请删除此注释
#In just restarted tomcat.
#----------------------------------
#EOF #该符号前面不能有空格,生产使用时请删除此注释
else
echo "checked." #首页下载成功,提示已检查
fi
----------------------------------------------------------------------------------------------------------
crond位于/etc/rc.d/init.d/crond 或 /etc/init.d 或 /etc/rc.d /rc5.d/S90crond,最总引用/var/lock/subsys/crond。
cron是一个linux下的定时执行工具(相当于windows下的scheduled task),可以在无需人工干预的情况下定时地运行任务task。由于cron 是Linux的service(deamon),可以用以下的方法启动、关闭这个服务:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
------------------ 实例 start --------------------------------
#/bin/bash
#脚本可写入到自动任务中,执行周期可根据tomcat起停时间长短来定,如下,每天0点到20点之间每隔10分钟检查一次
#echo "*/10 0-20 * * * root /home/wwwroot/script/tomcat_check.sh >> /home/wwwroot/script/tomcat_check.log 2>&1" >> /etc/crontab
# */01 * * * * root /mydirfiles/script/tomcat_check.sh >> /mydirfiles/script/tomcat_check.log 2>&1
# */01 * * * * root flock -xn /mydirfiles/script/tomcat_check.sh -c /mydirfiles/script/tomcat_check.sh >> /mydirfiles/script/tomcat_check.log 2>&1
# */01 * * * * root flock -xn /mydirfiles/script/tomcat_check.lock -c /mydirfiles/script/tomcat_check.sh >> /mydirfiles/script/tomcat_check.log 2>&1
cd /mydirfiles/script
rm -f test.jsp #删除之前已下载的首页
wget -T 10 -t 3 -q http://localhost:8080/test.jsp #下载首页,失败后最多偿试3次,每次间隔10秒
if [ ! -e test.jsp ]; then #判断首页是否下载成功,如果成功,则执行接下来的任务,否则执行else后的任务。
date
export JAVA_HOME=/usr/java/jdk1.7.0_80
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:/usr/local/tengine/sbin:$PATH
echo "tomcat restarting."
# /usr/local/tomcat/bin/shutdown.sh #关闭tomcat
# sleep 150 #等待tomcat关闭,一般是1~150s不等
pgrep java | xargs kill -s 9 #等待时间结束后,偿试强制结束tomcat进程
sleep 5
/usr/local/tomcat/bin/startup.sh
sleep 60 #等待tomcat启动,一般是1~150s不等
echo "tomcat restarted."
# else
# date
# echo "checked." #首页下载成功,提示已检查
fi
cd /mydirfiles/script
rm -f tomcat_check.lock
------------------ 实例 end --------------------------------