网站或API服务状态监控(CURL定期检查)脚本

curl_check_sh

介绍

因为原免费的服务检查纷纷开始收费,而自己页面服务状态检查的需求又比较简单,所以写了这个的脚本。
功能主要为crontab定时执行,检查curl的返回是否包含/或不包含关键字,否则执行指定重置脚本(可选)并钉钉通知(可选)。
下载地址:https://gitee.com/ddt009/curl_check_sh

安装教程

  1. 下载curl_check.sh(建议单独目录存放)
  2. 修改脚本为可执行,执行chmod +x curl_check.sh
  3. 保证当前目录可创建._curl_check目录(用于存临时状态文件)
  4. 生成并修改配置文件,执行curl_check.sh -l,生成._curl_check/.env.sample文件,按说明修改后改名为./._curl_check/.env
  5. 安装到定时任务,直接执行curl_check.sh -i(之后可按需crontab -e修改定时任务)

使用说明

Usage: curl_check.sh [Commands] [SIGN_FILE]

Parameters:
<URL> 要检查的URL,必须!
<RESULT_REQUIRED_STR> 检测字符串,必须!
[SIGN_FILE] 状态记录的临时文件(可选)

Commands:
-h, –help 显示本帮助
-v, –version 显示版本
-d, –debug 开启调试模式
-n, –not 需要结果不包含关键字
-u, –user_agent <USER_AGENT> 指定一个user-agent
-i, –install [CONFIG_FILE] 安装本脚本到crontab中定时每5分执行(可按需修改crontab -e
-l, –load [CONFIG_FILE] 从配置文件载入参数(不存在时创建sample文件),默认载入./._curl_check/.env(该参数最好单独使用)
-e, –exec <EXECUTE_FILE> 指定报错时执行的脚本(可选)
-t, –token <DINGTALK_TOKEN> 指定报错时钉钉机器人发消息(可选)
-k, –keyword <DINGTALK_KEYWORD> 钉钉机器人keyword(可选)

Example:
curl_check.sh -l (从./._curl_check/.env载入参数,无.env则创建示例文件.env.sample
curl_check.sh -l /etc/abc.env (从/etc/abc.env载入参数或创建/etc/abc.env.sample)
curl_check.sh http://abc.com ‘“code”:0’ (访问结果需含"code:0")
curl_check.sh -n http://abc.com ‘ABC’ /var/check_abc (访问结果不能含ABC,并且临时文件指定为/var/check_abc*)

配置文件.env

#访问的URL
CURL_CHECK_URL=https://example.org

#单引号包含的目标字符串,在CURL结果中查找
CURL_CHECK_RESULT_REQUIRED_STR=’”code”:0’

#希望查找结果是否为不含指定字串[0|1](默认0)
CURL_CHECK_RESULT_WANTED_NOT=0

#USER_AGENT(可选)
CURL_CHECK_USER_AGENT=

#用于作标记失败的文件路径,为空则自动生成
CURL_CHECK_SIGN_FILE=

#失败后自动执行的脚本或程序,为空则不执行
CURL_CHECK_EXECUTE_FILE=

#失败后发送钉钉,webhook机器人token,为空则不推送
CURL_CHECK_DINGTALK_TOKEN=

#钉钉webhook机器人签名(附于信息后),机器人设置不检查就留空
CURL_CHECK_DINGTALK_KEYWORD=