curl_check_sh
介绍
因为原免费的服务检查纷纷开始收费,而自己页面服务状态检查的需求又比较简单,所以写了这个的脚本。
功能主要为crontab定时执行,检查curl的返回是否包含/或不包含关键字,否则执行指定重置脚本(可选)并钉钉通知(可选)。
源码:https://gitee.com/ddt009/curl_check_sh
安装教程
- 下载curl_check.sh(建议单独目录存放)
- 修改脚本为可执行,执行
chmod +x curl_check.sh - 保证当前目录可创建
._curl_check目录(用于存临时状态文件) - 生成并修改配置文件,执行
curl_check.sh -l,生成._curl_check/.env.sample文件,按说明修改后改名为./._curl_check/.env - 安装到定时任务,直接执行
curl_check.sh -i(之后可按需crontab -e修改定时任务)
使用说明
Usage: curl_check.sh [Commands]
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=