# 定时通知工具
**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
# 📢 定时通知系统
[](https://www.python.org/)
[](https://www.riverbankcomputing.com/software/pyqt/)
[](#许可证)
[](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 支持一下!**
**让定时通知更简单,让运维更智能!**