监控启动脚本monitor.sh 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 #!/bin/sh TomcatID=$(ps -ef |grep tomcat |grep -w 'tomcat' |grep -v 'grep' |awk '{print $2}' ) StartTomcat=/usr/local /tomcat/bin/startup.sh WebUrl=http://localhost:8080 TomcatMonitorLog=/usr/local /tomcat/logs/TomcatMonitor.log Monitor() { echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S') ]" if [[ $TomcatID ]];then echo "[info]当前tomcat进程ID为:$TomcatID ,继续检测页面..." TomcatServiceCode=$(curl -I -m 10 -o /dev/null -s -w %{http_code} $WebUrl ) if [ $TomcatServiceCode -eq 200 ];then echo "[info]页面返回码为$TomcatServiceCode ,tomcat启动成功,测试页面正常......" else echo "[error]tomcat页面出错,请注意......状态码为$TomcatServiceCode ,错误日志已输出到$GetPageInfo " echo "[error]页面访问出错,开始重启tomcat" kill -9 $TomcatID sleep 3 rm -rf $TomcatCache $StartTomcat fi else echo "[error]tomcat进程不存在!tomcat开始自动重启..." echo "[info]$StartTomcat ,请稍候......" $StartTomcat fi echo "------------------------------" } Monitor>>$TomcatMonitorLog
启动脚本 1 2 chmod a+x monitor.sh ./monitor.sh
安装crontab
安装成功后一些常用命令1 2 3 4 5 6 7 8 service crond start //启动服务 service crond stop //关闭服务 service crond restart //重启服务 service crond reload //重新载入配置 查看crontab服务状态:service crond status 手动启动crontab服务:service crond start 查看crontab服务是否已设置为开机启动,执行命令:ntsysv 在CentOS系统中加入开机自动启动:chkconfig --level 35 crond on
接着就可以添加crontab定时服务了
要添加服务,可以在命令行输入:
然后在里面添加服务,例如设置一分钟执行一次脚本(后面为你的monitor.sh所在位置):
1 */1 * * * * /usr/local /monitor.sh
查看定时任务可以使用
重启crontab crontab定时任务不执行,单独运行sh生效 原因1:环境变量未生效,如Java的环境变量 解决办法:添加一句source /etc/profile
原因2:可执行文件缺少参数 解决办法:统一将启动程序写成脚本,然后由 monitor.sh 调用这个 start.sh
比如启动nexus程序的脚本start.sh1 2 3 #!/bin/bash cd /usr/local /xxx/bin./nexus start
来源:https://blog.csdn.net/qwssd/article/details/74010836