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=