Python 官方文档:入门教程 => 点击学习
目录原理环境代码crontab计划任务配置预警消息效果总结原理 采用python requests发起请求监测的URL,检测Http响应状态及是否超时,如果Http状态异常或响应超时
采用python requests发起请求监测的URL,检测Http响应状态及是否超时,如果Http状态异常或响应超时,则通过聚合云推的消息推送api将预警消息发送至邮箱、钉钉机器人、企业微信机器人、微信公众号等,服务端通过crontab定时(每分钟)执行代码,实现动态监测功能。
Python版本: 3.6
消息推送服务: tui.juhe.cn
#!/usr/bin/python3
import requests
import time
import JSON
# 监测URL是否正常响应
def url_check(url):
# 当前时间
check_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print("开始监测:%s -- %s" % (url, check_time))
try:
# 请求URL, 设置3s超时
r = requests.get(url, timeout=3)
if r.status_code != 200:
# 请求响应状态异常
msg = "监控的URL:%s%sHttp状态异常:%s%s监测时间:%s" % (url, "\n\n", r.status_code, "\n\n", check_time)
print("监测结果:异常(Http状态异常:%s) -- %s" % (r.status_code, check_time))
# 通过云推推送消息
yuntui_push(msg)
else:
# 请求响应正常
print("监测结果:正常 -- %s" % check_time)
except requests.exceptions.ConnectTimeout:
# 请求响应超时
msg = "监控的URL:%s%s请求异常:%s%s监测时间:%s" % (url, "\n\n", "请求超时", "\n\n", check_time)
print("监测结果:超时 -- %s" % check_time)
# 通过云推推送消息
yuntui_push(msg)
# 将预警消息通过云推推送
def yuntui_push(content):
# 当前时间
push_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
# 云推接口的信息配置,可以通过 https://tui.juhe.cn 自行注册创建
# (可以配置邮件、钉钉机器人、微信公众号等接收方式)
token = "*****************"
service_id = "******"
title = "URL可用性监控预警"
doc_type = "markdown"
body = {"token": token, "service_id": service_id, "title": title, "content": content, "doc_type": doc_type}
try:
r = requests.post("https://tui.juhe.cn/api/plus/pushApi", data=body, timeout=15)
push_res = json.loads(r.content)
code = push_res['code']
if code == 200:
print("推送结果:成功 -- %s" % push_time)
else:
print("推送结果:失败(%s) -- %s" % (push_res['reason'], push_time))
except requests.exceptions.ConnectTimeout:
print("推送结果:超时 -- %s" % push_time)
# 执行URL可用性监测
if __name__ == '__main__':
# 监控URL可用性
# url_check("https://www.test.com")
url_check("https://www.baidu.com/")
如果requests未安装可以执行以下命令安装
pip3 install requests
命令行输入crontab -e
进入计划任务配置
# 每分钟执行一次
*/1 * * * * /usr/bin/python3 /data/check_url/main.py >> /data/log.txt
查看日志
cat /data/log.txt
开始监测:https://www.baidu.com/ -- 2021-11-16 15:04:01
监测结果:正常 -- 2021-11-16 15:04:01
开始监测:https://www.baidu.com/ -- 2021-11-16 15:05:02
监测结果:正常 -- 2021-11-16 15:05:02
开始监测:https://www.baidu.com/ -- 2021-11-16 15:06:01
监测结果:正常 -- 2021-11-16 15:06:01
开始监测:https://www.baidu.com/ -- 2021-11-16 15:07:01
监测结果:正常 -- 2021-11-16 15:07:01
开始监测:https://www.baidu.com/ -- 2021-11-16 15:08:01
监测结果:正常 -- 2021-11-16 15:08:01
开始监测:https://www.test.com -- 2021-11-16 15:11:01
监测结果:超时 -- 2021-11-16 15:11:01
推送结果:成功 -- 2021-11-16 15:11:04
开始监测:https://www.test.com -- 2021-11-16 15:12:01
监测结果:超时 -- 2021-11-16 15:12:01
推送结果:成功 -- 2021-11-16 15:12:04
如果监测到异常结果,你在云推配置的接收终端将会收到通知,类似如下:
钉钉群机器人:
邮件:
微信公众号:
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!
--结束END--
本文标题: 详解Python实现URL监测与即时推送
本文链接: https://www.lsjlt.com/news/157492.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
一口价域名售卖能注册吗?域名是网站的标识,简短且易于记忆,为在线用户提供了访问我们网站的简单路径。一口价是在域名交易中一种常见的模式,而这种通常是针对已经被注册的域名转售给其他人的一种方式。
一口价域名买卖的过程通常包括以下几个步骤:
1.寻找:买家需要在域名售卖平台上找到心仪的一口价域名。平台通常会为每个可售的域名提供详细的描述,包括价格、年龄、流
443px" 443px) https://www.west.cn/docs/wp-content/uploads/2024/04/SEO图片294.jpg https://www.west.cn/docs/wp-content/uploads/2024/04/SEO图片294-768x413.jpg 域名售卖 域名一口价售卖 游戏音频 赋值/切片 框架优势 评估指南 项目规模
0