A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
提醒可以通过钉钉,或者邮件,或者短信接口等方式:
#!/bin/bash
URL=https://commandnotfound.cn/
DING_URL=https://oapi.dingtalk.com/robot/send?access_token={可以申请钉钉开发者获取对应Token}
function SendMsgToDingding(){
curl "${DING_URL}" -H 'Content-Type: application/json' -d "
{
\"actionCard\": {
\"title\": \"o(╥﹏╥)o故障啦\",
\"text\": \"Web地址: $URL\n\n状态码: $1\n\n响应时间:${REQUEST_TIME}秒\n\n当前时间:${DT}\n\n\",
\"hideAvatar\": \"0\",
\"btnOrientation\": \"0\",
\"btns\": [
{
\"title\": \"URL地址链接\",
\"actionURL\": \"$URL\"
}
]
},
\"msgtype\": \"actionCard\"
}"
}
function getHttpRequest()
{
DT=$(date)
CODE=$(echo `curl -o /dev/null -s -m 10 --connect-timeout 10 -w %{http_code} "$URL"`)
REQUEST_TIME=$(curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "$URL" | awk /time_total/ | awk -F ': ' '{print $2}')
if [[ "$REQUEST_TIME" > "2" ]] || [[ "$CODE" -ne 200 ]];then
SendMsgToDingding $CODE
else
:
fi
}
getHttpRequest
step=5
while true
do
getHttpRequest
sleep $step
done
本示例采用 Python 3
#!/bin/env python3
import requests
import json
import os
import sys
import subprocess
import time
url = "https://commandnotfound.cn"
api_url = "https://oapi.dingtalk.com/robot/send?access_token={#钉钉 TOKEN#}"
headers = {'Content-Type': 'application/json;charset=utf-8'}
cur_time = time.asctime(time.localtime(time.time()))
CMD_code = '''echo `curl -o /dev/null -s -m 10 --connect-timeout 10 -w %{http_code} "https://www.cjzshilong.cn"`'''
code = subprocess.getoutput(CMD_code)
#print(code)
CMD_time = ''' curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "https://www.cjzshilong.cn" | awk /time_total/ | awk -F ': ' '{print $2}' '''
res_time = subprocess.getoutput(CMD_time)
#print(res_time)
def msg(text):
json_text= {
"actionCard": {
"title": "solo状态码报警",
"text":
text,
"hideAvatar": "0",
"btnOrientation": "0",
"btns": [
{
"title": "URL链接测试",
"actionURL": "https://commandnotfound.cn"
},
]
},
"msgtype": "actionCard"
}
Text = requests.post(api_url,data=json.dumps(json_text),headers=headers).json()
return Text
def message():
mess = "solo网站状态码测试 \n\n Web网址: %s \n\n 状态码:%s \n\n 网站响应时间: %s s \n\n 当前时间:%s \n\n"%(url,code,res_time,cur_time)
return mess
if __name__ == '__main__':
if code != '200' or res_time > '2':
text = message()
msg(text)
else:
pass
钉钉消息到自定义机器人开发文档参考:获取自定义机器人 Webhook