该脚本建议放在tomcat所在服务器上,新建/root/script目录,脚本放在该目录。
不过因网络、硬件或系统严重故障导致邮件无法通知。脚本某些功能可以去除,放在其它服务器仅做为监控或重启Tomcat也可以。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
#/bin/bash ############################################# # author 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 echo ======================================== date cd /root/script rm –f index.html #删除之前已下载的首页 wget –T 10 –t 3 –q http://XXX.XXX.XXX.XXX/index.html #下载首页,失败后最多偿试3次,每次间隔10秒 if [ ! –e index.html ]; then #判断首页是否下载成功,如果失败,则执行接下来的任务,否则执行else后的任务。 # java Environment variables #设置jdk的环境变量,根据自已的实际情况设定 export JAVA_HOME=/opt/jdk1.6.0_21 export CLASSPATH=.:$JAVA_HOME/lib/tools.jar export CATALINA_HOME=/opt/apache–tomcat–6.0.26 export PATH=$JAVA_HOME/bin:$PATH echo “restart tomcat.” ${CATALINA_HOME}/bin/shutdown.sh #关闭tomcat sleep 150 #等待tomcat关闭,一般是1~150s不等 kill –9 `ps aux|grep “/usr/local/tomcat”|grep –v grep|awk ‘{print $2}’` #等待时间结束后,偿试强制结束tomcat进程 sleep 5 ${CATALINA_HOME}/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 |
拷贝文件到Linux系统中,可能要先运行类似下面的命令:
mv example_tomcat_check.txt example_tomcat_check.sh
dos2unix example_tomcat_check.sh
发表回复