使用crontab配合shell脚本定时检测拉起服务

简介: 使用crontab配合shell脚本定时检测拉起服务

1、新建脚本check_nginx.sh


#!/bin/bash
APP_NAME="nginx: master"
BIN_PATH="/usr/local/nginx/sbin"
#检测方法
checkStatus(){
  pid=$(ps -ef |grep "$APP_NAME" |grep -v "grep" |awk '{print $2}');
  #datetime=`date +%Y-%m-%d,%H:%m:%s`
  datetime="`date`"
  if [ -z "${pid}" ]; then
     echo "$datetime ---- 开始启动服务$APP_NAME"
     cd $BIN_PATH
     ./nginx
  else
     echo "$datetime ---- 项目$APP_NAME已经启动,进程pid是${pid}!"
  fi
}
checkStatus


脚本授权:


chmod  a+x    /usr/local/check/check_nginx.sh


这里注意一点:

APP_NAME=“nginx: master”

APP_NAME定义的一定要准确一点,保证获取到唯一的pid,而不是获取到相关的日志监控进程或者子work进程的pid


这是由于grep匹配的问题,需要grep进行精准匹配,即"grep -w"


#!/bin/bash
NUM=$(ps -ef|grep -w main|grep -v grep|wc -l)
if [ $NUM -eq 0 ];then
   echo "Oh!My God! It's broken! main is stoped!"
else
   echo "Don't worry! main is running!"
fi


2、建立定时任务


crontab -e
#新建定时任务,每分钟检测一次Nginx的状态,如果Nginx没有启动,就执行启动命令
* * * * * /usr/local/check/check_nginx.sh   >> /tmp/check_nginx.log


3、查看定时任务


crontab -l


查看日志


tail -200f     /tmp/check_nginx.log


目录
相关文章
|
3天前
|
人工智能 监控 Shell
常用的 55 个 Linux Shell 脚本(包括基础案例、文件操作、实用工具、图形化、sed、gawk)
这篇文章提供了55个常用的Linux Shell脚本实例,涵盖基础案例、文件操作、实用工具、图形化界面及sed、gawk的使用。
14 2
|
24天前
|
Shell
Shell脚本有哪些基本语法?
【9月更文挑战第4天】
41 17
|
24天前
|
存储 Unix Shell
shell脚本编程基础
【9月更文挑战第4天】
35 12
|
22天前
|
网络协议 关系型数据库 MySQL
Shell 脚本案例
Shell 脚本案例
34 8
|
23天前
|
Shell Linux 开发工具
linux shell 脚本调试技巧
【9月更文挑战第3天】在Linux中调试shell脚本可采用多种技巧:使用`-x`选项显示每行命令及变量扩展情况;通过`read`或`trap`设置断点;利用`echo`检查变量值,`set`显示所有变量;检查退出状态码 `$?` 进行错误处理;使用`bashdb`等调试工具实现更复杂调试功能。
|
4月前
|
Shell 索引
shell脚本入门到实战(四)- 数组
shell脚本入门到实战(四)- 数组
|
4月前
|
Shell
shell脚本入门到实战(三) - 变量
shell脚本入门到实战(三) - 变量
|
4月前
|
Shell Linux 人机交互
shell脚本入门到实战(二)--shell输入和格式化输出
shell脚本入门到实战(二)--shell输入和格式化输出
327 0
|
4月前
|
监控 关系型数据库 Shell
Shell脚本入门:从基础到实践,轻松掌握Shell编程
Shell脚本入门:从基础到实践,轻松掌握Shell编程
124 3
|
4月前
|
存储 Shell C语言
shell脚本 编程 变量 基本入门(详解)
shell脚本 编程 变量 基本入门(详解)