赞
踩
参考:可以先了解crontab:
使用yum安装crontab服务 yum install vixie-cron 安装成功, 看一下常用命令 /sbin/service crond start //启动服务 /sbin/service crond stop //关闭服务 /sbin/service crond restart //重启服务 /sbin/service crond reload //重新载入配置 查看crontab服务状态:service crond status 手动启动crontab服务:service crond start 查看crontab服务是否已设置为开机启动,执行命令:ntsysv 在CentOS系统中加入开机自动启动: chkconfig --level 35 crond on |
1. 创建目录: /usr/tomcat_sh/monitor
2. 放入shell文件: /usr/tomcat_sh/monitor.sh
@脚本内容:
#!/bin/sh
#定义环境变量(要改成自己的jdk相关地址)
#PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.7.0_79/bin #export JAVA_HOME=/usr/java/jdk1.7.0_79 #export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar #export PATH=$PATH:$JAVA_HOME/bin
# 获取tomcat进程ID(这里注意tomcat7要改成自己的tomcat目录名) TomcatID=$(ps -ef |grep tomcat |grep -w 'apache-tomcat-7.0.85'|grep -v 'grep'|awk '{print $2}') # tomcat启动程序(这里注意要改成自己tomcat实际安装的路径) StartTomcat=/usr/local/tomcat/apache-tomcat-7.0.85/bin/startup.sh TomcatCache=/usr/local/tomcat/apache-tomcat-7.0.85/work # 自己定义要监控的页面地址,页面越简单越好,比如:页面上写个success即可 WebUrl=http://127.0.0.1:8080/index.jsp # 日志输出 (自己定义地址,用于输出监控日志和监控报错日志) TomcatMonitorLog=/usr/java/monitor/TomcatMonitor.log GetPageInfo=/usr/java/monitor/PageInfo.log Monitor() { echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]" if [[ $TomcatID ]];then # 这里判断TOMCAT进程是否存在 echo "[info]当前tomcat进程ID为:$TomcatID,继续检测页面..." # 检测是否启动成功(成功的话页面会返回状态"200") TomcatServiceCode=$(curl -s -o $GetPageInfo -m 10 --connect-timeout 10 $WebUrl -w %{http_code}) if [ $TomcatServiceCode -eq 200 ];then echo "[info]页面返回码为$TomcatServiceCode,tomcat启动成功,测试页面正常......" else echo "[error]tomcat页面出错,请注意......状态码为$TomcatServiceCode,错误日志已输出到$GetPageInfo" echo "[error]页面访问出错,开始重启tomcat" kill -9 $TomcatID # 杀掉原tomcat进程 #sleep 3 #rm -rf $TomcatCache # 清理tomcat缓存 #$StartTomcat fi else echo "[error]tomcat进程不存在!tomcat开始自动重启..." echo "[info]$StartTomcat,请稍候......" #rm -rf $TomcatCache $StartTomcat fi echo "------------------------------" }
Monitor>>$TomcatMonitorLog |
3. 授权: chmod a+xmonitor.sh
4. 加入crontab执行: crontab –e
*/1 * * * */usr/tomcat_sh/monitor.sh #一分钟检测一次
@说明:执行时间 * * * * *
· minute: 表示分钟,可以是从0到59之间的任何整数。 · hour:表示小时,可以是从0到23之间的任何整数。 · day:表示日期,可以是从1到31之间的任何整数。 · month:表示月份,可以是从1到12之间的任何整数。 · week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。 · command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。 在以上各个字段中,还可以使用以下特殊字符: · 星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。 · 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9” · 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6” · 正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。 |
5. 重新加载crontab配置: service crond reload
问题描述:sh文件中,在win环境下,用WinSCP编辑,出现如下错误:
-bash: ./start.sh:/bin/sh^M: bad interpreter: No such file or directory
解决方案:这是win的编码引起的,可通过如下解决。
1.查看该文件:vim monitor.sh
2.查看该错误文件的格式(一般报错的文件格式是DOS):
:set ff
3.修改该文件格式为UNIX:
:set ff=unix
4.再保存。
:wq!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。