Python 用 Doubao-Seed-Evolving 写网站监控脚本:完整代码与飞书告警、Windows 计划任务踩坑排查
Python 用 Doubao-Seed-Evolving 写网站监控脚本完整代码与飞书告警、Windows 计划任务踩坑排查一、问题背景网站半夜挂了谁在第一时间知道做开发的人基本都碰过这类问题。服务器上跑着几个对外服务平时看着正常某天半夜其中一个悄无声息挂了第二天上班才发现丢了一晚数据。等到用户或客户来投诉损失已经实打实发生了。成熟的监控 SaaS 不是没有但免费额度紧、付费按年收对只盯三五个站的个人或小团队来说偏重。本文给出一种轻量方案用大模型 Doubao-Seed-Evolving 从一个自然语言需求直接生成可运行的 Python 监控脚本覆盖 HTTP 探测、飞书告警、定时调度全流程并附两处真实踩坑的排查过程方便后来的人直接复用。二、为什么用 Doubao-Seed-Evolving 生成Doubao-Seed-Evolving 是字节跳动面向复杂工程任务推出的模型8 月 3 日刚完成第二次升级重点强化了 Coding 工程能力、Agent 检索能力和幻觉控制能力。对「自然语言需求 → 完整可运行工程」这类任务它的表现值得实测。我的做法是先把需求边界讲清楚再交给模型监控谁、怎么算异常、出事往哪发通知这三件事由人定模型只按边界施工。提示词核心几条读 targets.json 配置含 name、url、timeout逐个发 GET 请求记录是否可达、状态码、耗时不可达、状态码 ≥400、耗时超阈值三种情况任一即异常异常发飞书告警且内容含关键词没配飞书就只打印日志。三、完整 monitor.pyPython 3.10仅依赖 requests下面是可以直接复制运行的完整版本已经过实测和两处踩坑修正。#!/usr/bin/env python3# -*- coding: utf-8 -*-HTTP 目标监控脚本定期监控配置的 URL异常时通过飞书机器人发送告警importjsonimportsysimporttimefromdatetimeimportdatetimefrompathlibimportPathfromtypingimportAnyimportrequestsdefload_json_file(file_path:Path)-Any:withopen(file_path,r,encodingutf-8)asf:returnjson.load(f)defget_feishu_webhook(base_dir:Path)-str|None:config_pathbase_dir/config.jsonifnotconfig_path.exists():returnNonetry:configload_json_file(config_path)webhookconfig.get(feishu_webhook,).strip()returnwebhookifwebhookelseNoneexcept(json.JSONDecodeError,OSError)ase:print(f[警告] 读取 config.json 失败:{e})returnNonedefload_targets(base_dir:Path)-list[dict]:targets_pathbase_dir/targets.jsonifnottargets_path.exists():print(f[错误] 未找到配置文件:{targets_path})sys.exit(1)try:targetsload_json_file(targets_path)ifnotisinstance(targets,list):print([错误] targets.json 必须是 JSON 数组格式)sys.exit(1)returntargetsexceptjson.JSONDecodeErrorase:print(f[错误] 解析 targets.json 失败:{e})sys.exit(1)defcheck_target(target:dict)-dict:nametarget.get(name,未命名)urltarget.get(url,)timeouttarget.get(timeout,5)result{name:name,url:url,timeout:timeout,is_reachable:False,status_code:None,elapsed:0.0,is_error:False,error_reason:,}start_timetime.time()try:responserequests.get(url,timeouttimeout,allow_redirectsTrue,headers{User-Agent:MonitorScript/1.0})result[elapsed]round(time.time()-start_time,3)result[status_code]response.status_code result[is_reachable]Trueifresponse.status_code400:result[is_error]Trueresult[error_reason]fHTTP状态码异常:{response.status_code}elifresult[elapsed]timeout:result[is_error]Trueresult[error_reason]f响应超时: 耗时{result[elapsed]}s 阈值{timeout}sexceptrequests.exceptions.Timeout:result[elapsed]round(time.time()-start_time,3)result[is_error]Trueresult[error_reason]f请求超时: 超过{timeout}秒未响应exceptrequests.exceptions.ConnectionError:result[elapsed]round(time.time()-start_time,3)result[is_error]Trueresult[error_reason]连接失败: 无法建立网络连接exceptrequests.exceptions.RequestExceptionase:result[elapsed]round(time.time()-start_time,3)result[is_error]Trueresult[error_reason]f请求异常:{str(e)}returnresultdefsend_feishu_alert(webhook:str,result:dict)-bool:# 飞书对 markdown 类型关键词校验异常改用 text 类型 关键词监控current_timedatetime.now().strftime(%Y-%m-%d %H:%M:%S)text_content(f监控服务异常通知\n---\nf服务名称:{result[name]}\n访问地址:{result[url]}\nf错误原因:{result[error_reason]}\n状态码:{result[status_code]orN/A}\nf响应耗时:{result[elapsed]}s\n超时阈值:{result[timeout]}s\nf触发时间:{current_time}\n)payload{msg_type:text,content:{text:text_content}}try:responserequests.post(webhook,jsonpayload,timeout10,headers{Content-Type:application/json})response.raise_for_status()resp_dataresponse.json()ifresp_data.get(code,0)!0:print(f[飞书告警发送失败]{resp_data.get(msg,未知错误)})returnFalsereturnTrueexceptrequests.exceptions.RequestExceptionase:print(f[飞书告警发送异常]{e})returnFalsedefprint_log(result:dict)-None:current_timedatetime.now().strftime(%Y-%m-%d %H:%M:%S)status[异常]ifresult[is_error]else[正常]log_line(f[{current_time}]{status}| 名称:{result[name]}| fURL:{result[url]}| 状态码:{result[status_code]orN/A}| f耗时:{result[elapsed]}s)ifresult[is_error]:log_linef | 原因:{result[error_reason]}print(log_line)defmain():base_dirPath(__file__).resolve().parentprint(*60)print(fHTTP监控脚本启动 -{datetime.now().strftime(%Y-%m-%d %H:%M:%S)})print(*60)feishu_webhookget_feishu_webhook(base_dir)print([信息] 飞书告警已启用iffeishu_webhookelse[信息] 飞书告警未配置仅打印控制台日志)targetsload_targets(base_dir)print(f[信息] 成功加载{len(targets)}个监控目标)print(-*60)error_count0fortargetintargets:ifnamenotintargetorurlnotintarget:print(f[跳过] 配置项缺少 name 或 url 字段:{target})continueresultcheck_target(target)print_log(result)ifresult[is_error]:error_count1iffeishu_webhookandsend_feishu_alert(feishu_webhook,result):print(f └─ 飞书告警已发送:{result[name]})print(-*60)print(f监控完成: 共检查{len(targets)}个目标, 异常{error_count}个)print(*60)sys.exit(1iferror_count0else0)if__name____main__:main()四、配置文件与运行步骤同目录放targets.json必需和config.json可选。targets.json是监控目标的数组每项含name、url、timeout三个字段config.json只放一个feishu_webhook不配就只打控制台日志。// targets.json[{name:示例站点A,url:https://www.baidu.com,timeout:5},{name:示例站点B,url:https://github.com,timeout:10}]// config.json可选{feishu_webhook:https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxx}安装依赖与运行先pip install requests再python monitor.py即可看到带时间戳的探测日志。这个 Python 网站监控脚本对运行环境要求很低一台任意配置的云服务器或本地机器都能长期挂着。定时执行的两种常见姿势。Linux 用 crontab规则*/5 * * * *表示每 5 分钟一次完整写法*/5 * * * * /usr/bin/python3 /path/to/monitor.py /var/log/monitor.log 21日志追加到文件便于排查。Windows 则在「任务计划程序」里新建任务触发器设「每隔 5 分钟」操作指向一个run_monitor.batbat 内容第一行必须chcp 65001强制 UTF-8再调用python monitor.py否则会踩到下一节的编码坑。五、踩坑排查一飞书告警被关键词校验拦下现象脚本逻辑跑通、控制台打印异常但飞书群里一条告警都没收到后台返回「Key Words Not Found」。排查最初用 markdown 类型消息、正文含「告警」二字以为飞书关键词校验只认纯文本把关键词挪到正文第一行仍失败。根因是这台飞书机器人对 markdown 类型消息的关键词校验不稳定改成 text 类型、关键词改为「监控」后立刻成功。结论模型写的代码逻辑没错没踩中的是第三方平台的安全规则定位根因靠人。图 2飞书群里收到两条告警消息分别是 httpbin 超时和不存在域名连接失败六、踩坑排查二Windows 计划任务报 GBK 编码错误现象在终端手动运行正常挂进 Windows 计划任务每五分钟跑一次后日志报错gbk codec cant encode character。排查计划任务调起的控制台默认 GBK 编码而日志里用了 emoji 图标UTF-8 环境下没事、GBK 下直接崩。修法两步bat 入口加chcp 65001强制 UTF-8把 emoji 换成[正常]/[异常]纯文字。改完定时任务稳定运行。图 3Windows 任务计划程序里 SeedMonitor 的属性页触发器为每 5 分钟重复一次这里提醒一点脚本能跑通不算完能一直跑、出事能喊你才算真正在岗。下图是稳定运行后的日志三个目标全部正常、异常 0 个。图 4monitor.log 内容三个目标全部「正常」、异常 0 个证明定时任务稳定运行七、从脚本到接口能力沉淀的下一步脚本在本地跑着只是起点。把探测逻辑抽象成 HTTP 健康检查接口参数url timeout expected_status返回状态码、耗时、是否异常再叠告警规则、调度、历史可用率它就成了一个轻量监控能力。这样一个本机网站监控脚本就变成了可被前端大屏、运维平台直接调用的接口监控服务。想让脚本对外提供服务可封装成接口托管到 YesApi Pro 这类 API 开放平台省去自搭服务、接计费、做权限的功夫是否采用看各自基础设施情况。这种「从个人脚本到可复用产品能力」的路径正是这次用 Doubao-Seed-Evolving 做复刻最值得沉淀的部分。八、适用场景与边界这套方案最适合「盯几个对外站点、要个及时告警」的个人或小团队场景。要做企业级可用性监控至少补三件事多节点探测单台机器单出口会误报、SSL 证书到期检查、探测与告警通道解耦。它只检查「首页能不能打开」不验证页面内容和接口深层逻辑深度巡检需另写用例。把边界讲清楚比把它描述成万能工具更经得起推敲。八、总结这套网站监控方案成本极低复制配置、装一个 requests 依赖即可上手对运行环境几乎没要求。Doubao-Seed-Evolving 负责从零到一的代码生成与后续多轮改版人负责需求边界、踩坑定位和部署判断。两者配合才到得了「真在跑、真在告警」这一步。对想做接口监控、又不想一上来就上重型运维系统的个人和小团队来说这条从脚本到接口的路线值得照着复一遍跑通之后再按自己的站点数量慢慢加能力比直接买一套用不上的监控 SaaS 更划算。#Python #大模型 #AI编程 #网站监控 #后端 #开发工具 #程序员 #自动化 #接口测试#效率工具

相关新闻

如何在Unity中快速实现动态SDF?com.unity.demoteam.mesh-to-sdf完整入门指南

如何在Unity中快速实现动态SDF?com.unity.demoteam.mesh-to-sdf完整入门指南

如何在Unity中快速实现动态SDF?com.unity.demoteam.mesh-to-sdf完整入门指南 【免费下载链接】com.unity.demoteam.mesh-to-sdf A light and fast real-time SDF generator, primarily for animated characters. The dynamic SDF can be used for all sorts of VFX.…

2026/8/6 22:50:47 阅读更多 →
开发人员必读:MiniMeToken智能合约架构与代码实现原理

开发人员必读:MiniMeToken智能合约架构与代码实现原理

开发人员必读:MiniMeToken智能合约架构与代码实现原理 【免费下载链接】minime Minimi Token. ERC20 compatible clonable token 项目地址: https://gitcode.com/gh_mirrors/mi/minime MiniMeToken是一个与ERC20兼容的可克隆代币智能合约系统,它允…

2026/8/6 22:49:47 阅读更多 →
AbMole 小讲堂丨LDN-193189:BMP受体抑制剂,在骨形态发生蛋白信号与干细胞分化研究中的应用

AbMole 小讲堂丨LDN-193189:BMP受体抑制剂,在骨形态发生蛋白信号与干细胞分化研究中的应用

骨形态发生蛋白(BMP)信号通路是调控胚胎发育、组织修复和干细胞命运决定的关键通路,其过度激活与骨异位钙化、纤维化及某些肿瘤的发生发展密切相关。LDN-193189(DM-3189,AbMole,M1873)是一种选择…

2026/8/6 22:49:47 阅读更多 →

最新新闻

深度解析:LeetHub的技术架构与LeetCode-GitHub自动化同步实战应用

深度解析:LeetHub的技术架构与LeetCode-GitHub自动化同步实战应用

深度解析:LeetHub的技术架构与LeetCode-GitHub自动化同步实战应用 【免费下载链接】LeetHub Automatically sync your leetcode solutions to your github account - top 5 trending GitHub repository 项目地址: https://gitcode.com/gh_mirrors/le/LeetHub …

2026/8/6 23:45:12 阅读更多 →
短剧团队素材安全指南:3类高频风险+一份防护排查

短剧团队素材安全指南:3类高频风险+一份防护排查

本文将从三个高频风险出发,拆解短剧团队需要关注的安全盲区,并给出一份实际可执行的防护排查清单拍了半个月的短剧素材,价值几十万元,却可能因为一次弱密码、一次误点击,在几个小时内全部损失。对于短剧制作团队来说&a…

2026/8/6 23:45:12 阅读更多 →
3小时打造专属虚拟桌宠:VPet开源项目让你的桌面伙伴活起来!

3小时打造专属虚拟桌宠:VPet开源项目让你的桌面伙伴活起来!

3小时打造专属虚拟桌宠:VPet开源项目让你的桌面伙伴活起来! 【免费下载链接】VPet 虚拟桌宠模拟器 一个开源的桌宠软件, 可以内置到任何WPF应用程序 项目地址: https://gitcode.com/GitHub_Trending/vp/VPet 你是否厌倦了单调的电脑桌面&#xff…

2026/8/6 23:45:12 阅读更多 →
Linux定时任务(cron/at)配置与优化实践指南

Linux定时任务(cron/at)配置与优化实践指南

1. 定时任务基础概念与场景解析在服务器运维和后台开发中,定时任务就像一位不知疲倦的管家,按照预设的时间表自动执行各种重复性工作。我管理过的生产环境中,90%以上的服务器都会配置至少5种定时任务,从简单的日志清理到复杂的报表…

2026/8/6 23:45:12 阅读更多 →
Windows硬盘分区合并实用指南

Windows硬盘分区合并实用指南

1. 为什么需要合并硬盘分区? 在日常使用电脑的过程中,很多用户都会遇到硬盘分区不合理的情况。比如当初安装系统时给C盘分配的空间太小,现在系统盘空间告急;或者早期分区时过于零散,现在想要整合空间提高利用率。我自己…

2026/8/6 23:45:12 阅读更多 →
全面掌握OpenPCDet:3D点云目标检测的终极工具箱 [特殊字符]

全面掌握OpenPCDet:3D点云目标检测的终极工具箱 [特殊字符]

全面掌握OpenPCDet:3D点云目标检测的终极工具箱 🚀 【免费下载链接】OpenPCDet OpenPCDet Toolbox for LiDAR-based 3D Object Detection. 项目地址: https://gitcode.com/gh_mirrors/op/OpenPCDet OpenPCDet 是一个基于PyTorch的LiDAR点云3D目标…

2026/8/6 23:44:11 阅读更多 →

日新闻

深入解析LimboAI C++内核:架构设计与性能优化实战

深入解析LimboAI C++内核:架构设计与性能优化实战

1. 项目概述:为什么我们需要深入LimboAI的C内核?如果你是一名使用Godot引擎的游戏开发者,尤其是对AI行为逻辑有较高要求的项目,那么LimboAI这个名字你大概率不会陌生。它作为Godot 4生态中一个备受瞩目的行为树与状态机插件&#…

2026/8/6 0:00:06 阅读更多 →
Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

1. 项目概述与核心思路大家好,我是老张,一个在游戏开发一线摸爬滚打了十多年的老码农。今天咱们接着聊《空洞骑士》风格2D动作游戏的Demo制作。上一期我们搭好了基础框架,处理了角色移动和碰撞,这一期,我们要让游戏世界…

2026/8/6 0:00:06 阅读更多 →
被动防火门市场前景发展趋势

被动防火门市场前景发展趋势

被动防火门依靠材质结构、密闭构造阻隔烟火蔓延,无需电控启动,是建筑被动消防系统核心构件,行业依托新规管控、城市更新、工业安全升级迎来稳定扩容,整体朝着合规化、专项化、低碳化、智能化方向发展。现阶段 GB12955‑2024 新版国…

2026/8/6 0:00:06 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/6 22:02:27 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/6 22:02:27 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/6 22:02:27 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/6 22:02:28 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →