# 定时通知工具 **Repository Path**: ike_lin/timer-notification-tool ## Basic Information - **Project Name**: 定时通知工具 - **Description**: 这是一个功能齐全的本地定时通知系统,功能使用场景包括:设备维保到期提醒、证书/域名续期预警、定期报告通知、项目里程碑提醒等自动化推送。支持钉钉、邮件、脚本,企业内许可证授权,独立部署。 - **Primary Language**: Python - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2026-05-20 - **Last Updated**: 2026-06-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
# 📢 定时通知系统 [![Python](https://img.shields.io/badge/Python-3.8%2B-blue.svg)](https://www.python.org/) [![PyQt5](https://img.shields.io/badge/PyQt-5.15-green.svg)](https://www.riverbankcomputing.com/software/pyqt/) [![License](https://img.shields.io/badge/License-Offline%20License-orange.svg)](#许可证) [![Release](https://img.shields.io/badge/Release-v4.0-brightgreen.svg)](https://gitee.com/your-repo/notice-system/releases) **一个功能齐全的本地定时通知系统** 支持钉钉、邮件、脚本等多渠道自动化推送,集成探针监测与 AI 智能分析。 [📥 快速安装](#安装教程) | [📖 使用指南](#使用说明) | [🛠️ 参与贡献](#参与贡献) | [📞 联系我们](#联系与支持)
--- ## 🎯 适用场景 - 🔔 **设备维保到期提醒** – 服务器、网络设备、软件授权到期前自动告警 - 📜 **证书/域名续期预警** – SSL 证书、域名过期前通知运维人员 - 📊 **定期报告通知** – 自动发送日报、周报、月报到钉钉/邮箱 - 🗓️ **项目里程碑提醒** – 重要节点、会议前自动推送 - 🖥️ **服务器状态监控** – 通过探针检测 HTTP、Ping、端口等,异常时告警 --- ## 🧱 软件架构 | 组件 | 技术栈 | |--------------|------------------------------------------------------------| | 前端 | PyQt5 | | 后端 | Python 3.8+、APScheduler | | 数据库 | SQLite(本地存储) | | 通知方式 | 钉钉机器人(Webhook + 加签)、SMTP 邮件、外部 Python 脚本 | | 授权机制 | 离线许可证(绑定 MAC + 有效期,SHA256 签名) | | 打包方式 | PyInstaller 单文件 EXE | --- ## ✨ 功能特性 ### 🔐 许可证授权 - 绑定设备 MAC 地址,生成 `.lic` 文件 - 离线验证,支持永久或按有效期授权 - 附带许可证管理工具,可批量生成、统计、邮件分发 ### ⏰ 任务管理 - 支持**一次性**、**每日**、**每周**、**每月**、**Cron 表达式**多种触发方式 - 可组合通知动作:钉钉、邮件、脚本同时执行 - Excel 批量导入/导出,方便迁移和备份 ### 📡 探针监测(健康检查 + 主动告警) - **支持多种检测类型**: - HTTP/HTTPS(支持 GET/POST,自定义请求头、请求体、期望状态码) - Ping(ICMP 探测) - TCP 端口连通性 - UDP 端口探测(支持发送数据) - Telnet 端口可达性 - Curl 命令(支持自定义请求方法、头部、数据) - **灵活的告警策略**: - 设置检查间隔(秒级) - 设置连续失败阈值(例如:连续 3 次失败才告警) - 支持最大告警次数限制(避免重复轰炸) - **恢复通知**:故障恢复后自动发送“【探针恢复】”消息 - **多动作支持**:告警/恢复均可选择钉钉、邮件、执行脚本 - **实时状态展示**:表格中显示探针状态(正常/故障/禁用)及连续失败次数 - **右键快捷操作**:编辑、删除、测试、启用/禁用、AI 分析 ### 🤖 AI 增强 - 集成 **DeepSeek 大模型**(可更换其他 OpenAI 兼容 API) - 自动摘要错误信息,分析失败原因 - 自然语言创建任务(例如:“每周五下午5点提醒我发周报”) - 智能问答,可咨询运维问题或生成脚本 ### 📊 数据维护 - 操作日志完整记录,支持导出 Excel/CSV - 统计图表:成功率、近7天触发次数、探针健康趋势 - 任务及探针配置可一键刷新、启用/禁用 ### 🖥️ 界面优化 - 表格自适应列宽、内容居中 - 鼠标悬停显示完整文本 - 支持系统托盘、开机自启动 ### 📦 独立运行 - 打包为单文件 EXE,无需安装 Python 环境 - 所有数据存储在用户目录 `%APPDATA%\定时通知系统` --- ## 📥 安装教程 1. **下载安装包** 前往 [Releases](https://gitee.com/your-repo/notice-system/releases) 下载 `定时通知系统_Setup.exe` 2. **运行安装** 双击安装程序,按提示选择安装目录(推荐默认路径) 3. **启动软件** 安装完成后,从开始菜单或桌面快捷方式启动 4. **导入许可证** - 首次启动弹出授权窗口,复制本机 MAC 地址 - 将 MAC 地址发送给管理员,获取 `license.lic` 文件 - 点击“导入并验证”完成授权 > 💡 提示:MAC 地址可在授权窗口直接复制,许可证文件由**许可证管理工具**生成(支持批量生成、邮件发送)。 --- ## 🚀 使用说明 ### 1️⃣ 系统设置 进入 **系统设置** → 配置通知渠道: - **钉钉机器人**:填写 Webhook URL 和加签 Secret(可选) - **邮件**:SMTP 服务器、端口、用户名、密码(QQ 邮箱需用授权码) - **AI 服务**:DeepSeek API Key(可选,用于 AI 功能) ### 2️⃣ 创建定时任务 1. 点击 **添加任务** 2. 填写标题、内容 3. 选择触发类型(一次性/每日/每周/每月/Cron) 4. 选择动作类型(钉钉/邮件/脚本/组合) 5. 保存后任务自动加入调度 ### 3️⃣ 探针监测(重点) 1. 切换到 **探针监测** 标签页 2. 点击 **添加探针**,弹出配置窗口: - **探针名称**:自定义,如“百度首页检测” - **监测类型**:HTTP、Ping、TCP端口、UDP端口、Telnet、Curl - **目标地址**:根据类型填写 URL、IP 或 IP:端口 - **参数设置**(可选):针对不同监测类型可配置请求头、超时、期望状态码、发送数据等 - **检查间隔(秒)**:建议 30~300 秒 - **失败告警阈值**:连续失败多少次后发送告警 - **最大告警次数**:0 表示无限,正数表示达到次数后不再重复告警(直到恢复) - **告警动作**:钉钉/邮件/执行脚本 3. 保存后探针即开始按间隔自动检查 4. 探针列表中会实时显示状态(正常/故障/已禁用)及连续失败次数 5. **恢复通知**:当故障探针恢复正常时,系统自动发送“【探针恢复】”消息,内容包含恢复时间和之前失败次数 6. **右键菜单**:支持编辑、删除、立即测试、启用/禁用、AI 分析(分析失败日志) ### 4️⃣ 批量管理 - **导入 Excel**:支持合并或覆盖现有任务 - **导出 Excel**:备份当前任务列表 - **下载模板**:获取标准模板文件,按示例填写 ### 5️⃣ 日志与统计 - **操作日志**:查看任务执行历史、探针告警记录,支持导出 - **统计图表**:任务成功率、近7天触发次数;探针相关统计可在 AI 问答中询问 ### 6️⃣ AI 助手 - 在系统设置中配置 DeepSeek API Key - 点击 **🤖 AI 问答**,可提问例如: - “为什么探针频繁失败?” - “帮我写一个检测磁盘空间的 Python 脚本” - “解释一下 Cron 表达式 `0 9 * * 1`” - 在任务编辑窗口中,可使用 **AI 解析** 将自然语言转为任务参数 - 在探针列表右键选择“AI 分析”,可针对该探针的失败日志进行智能分析 --- ## 🤝 参与贡献 本软件为开源产品,欢迎提交 Issue 和 Pull Request。 - **仓库地址**:[https://gitee.com/your-repo/notice-system](https://gitee.com/your-repo/notice-system) - **贡献指南**:请先阅读 [CONTRIBUTING.md](CONTRIBUTING.md) - **定制/授权**:如需商业定制或批量授权,请联系维护者 --- ## 📄 许可证 本软件采用 **离线授权** 机制,非开源许可证。 - 源代码公开,但使用时需获取合法授权文件 - 授权文件由管理员根据设备 MAC 地址生成,绑定有效期 - 禁止未授权传播、破解或二次销售 **许可证管理工具**独立提供,支持: - 单条/批量生成 `.lic` 文件 - 验证许可证有效性 - 统计图表、邮件发送 - 自定义签名盐值 --- ## 🛠️ 技术特技 - ✅ **安全可靠**:本地运行,数据本地存储 - ✅ **任务持久化**:重启后自动加载未执行任务 - ✅ **高可扩展**:动作类型、探针类型均可通过 Python 脚本扩展 - ✅ **错误重试**:脚本执行超时自动中断,避免阻塞 - ✅ **托盘体验**:关闭窗口可最小化到系统托盘,双击恢复 --- ## 📞 联系与支持 | 渠道 | 方式 | |------|------| | 微信公众号 | **一个运维** | | QQ 群 | 关注公众号 → 菜单「关于我们」→「我要加群」 | | 邮箱 | next.lin@foxmail.com | | Issue | [Gitee Issues](https://gitee.com/your-repo/notice-system/issues) | ---
**🌟 如果这个项目对你有帮助,请给个 Star 支持一下!** **让定时通知更简单,让运维更智能!**