# curl_check_sh **Repository Path**: ddt009/curl_check_sh ## Basic Information - **Project Name**: curl_check_sh - **Description**: 网站或API服务状态监控(CURL定期检查)脚本 - **Primary Language**: Shell - **License**: MIT - **Default Branch**: master - **Homepage**: https://fjddt.com - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-03-22 - **Last Updated**: 2022-03-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 网站或API服务状态监控(CURL定期检查)脚本 #### 介绍 因为原免费的服务检查纷纷开始收费,而自己页面服务状态检查的需求又比较简单,所以写了这个的脚本。 功能主要为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,必须! `` 检测字符串,必须! `[SIGN_FILE]` 状态记录的临时文件(可选) Commands: -h, --help 显示本帮助 -v, --version 显示版本 -d, --debug 开启调试模式 -n, --not 需要结果不包含关键字 -u, --user_agent `` 指定一个`user-agent` -i, --install `[CONFIG_FILE]` 安装本脚本到crontab中定时每5分执行(可按需修改`crontab -e`) -l, --load `[CONFIG_FILE]` 从配置文件载入参数(不存在时创建sample文件),默认载入`./._curl_check/.env`(该参数最好单独使用) -e, --exec `` 指定报错时执行的脚本(可选) -t, --token `` 指定报错时钉钉机器人发消息(可选) -k, --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= #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request