做好统一监控面板后,“移动查看”又成新难题:
领导出差时要查任务状态,我得把Excel监控面板截图发过去;自己在外想确认邮件发没发,还得找电脑打开文件——上周领导在高铁上催要监控数据,我翻半天手机找不到最新截图,只能让同事帮忙转发,特别被动!
前面实现了“Excel统一监控”,这次教“移动升级招”!用Python把监控面板转成网页版,手机点开链接就能看所有任务状态(成功/失败、执行时间),不用装APP,出差、通勤都能随时查,还能分享给领导同事!
核心逻辑:把Excel面板“转成网页”,手机随时访问
不用学网页开发!核心是用Python的“Flask库”(轻量级网页框架),把监控任务状态数据(成功/失败、时间)做成简单网页,再用“内网穿透”让手机能通过链接访问——代码少、操作简单,10分钟就能搭好,不用买服务器!
4步做手机可看的监控网页,新手也能会!

① 装“网页生成+内网穿透”库(2分钟搞定!)
打开“命令提示符”(Win+R输cmd),输入2行命令安装所需库:
- pip install flask (生成网页的核心库)
- pip install pyngrok (实现内网穿透,让手机能访问电脑上的网页)
安装完不用额外配置,直接调用就行。
② 写“监控数据+网页”代码(改参数就行!)
新建“监控网页.py”文件,粘贴代码,替换 日志路径 和 ngrok密钥 (后面会说怎么获取):
python
from flask import Flask, render_template_string
import pandas as pd
import os
from datetime import datetime
from pyngrok import connect, conf
# 1. 初始化Flask网页应用
app = Flask(__name__)
# 2. 定义监控任务(和之前Excel监控一致,改日志路径!)
监控任务 = [
{"任务名": "邮件发送", "日志路径": r"D:\日志\邮件日志.txt", "成功关键词": "发送成功", "失败关键词": "发送失败"},
{"任务名": "数据备份", "日志路径": r"D:\日志\备份日志.txt", "成功关键词": "备份成功", "失败关键词": "备份失败"},
{"任务名": "仪表盘生成", "日志路径": r"D:\日志\仪表盘日志.txt", "成功关键词": "生成成功", "失败关键词": "生成失败"}
]
# 3. 读取任务状态(复用之前的逻辑)
def get_all_task_status():
任务状态列表 = []
for task in 监控任务:
task_name = task["任务名"]
log_path = task["日志路径"]
success_key = task["成功关键词"]
fail_key = task["失败关键词"]
# 处理日志不存在/为空的情况
if not os.path.exists(log_path):
任务状态列表.append({"任务名": task_name, "时间": "未执行", "状态": "未执行", "详情": "日志缺失"})
continue
with open(log_path, "r", encoding="utf-8") as f:
lines = f.readlines()
if not lines:
任务状态列表.append({"任务名": task_name, "时间": "未执行", "状态": "未执行", "详情": "日志为空"})
continue
# 提取最新日志
latest_line = lines[-1].strip()
try:
time_str, detail = latest_line.split(" - ", 1)
# 判断状态
if success_key in detail:
status = "成功"
status_color = "green" # 成功标绿色
elif fail_key in detail:
status = "失败"
status_color = "red" # 失败标红色
else:
status = "未知"
status_color = "gray" # 未知标灰色
任务状态列表.append({
"任务名": task_name,
"时间": time_str,
"状态": status,
"状态颜色": status_color,
"详情": detail
})
except Exception as e:
任务状态列表.append({"任务名": task_name, "时间": "格式错", "状态": "未知", "状态颜色": "gray", "详情": f"日志格式错:{str(e)}"})
return 任务状态列表
# 4. 定义网页内容(简单模板,手机适配)
网页模板 = """
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <!-- 手机适配 -->
<title>自动化任务监控</title>
<style>
body { font-family: Arial; margin: 20px; }
h1 { text-align: center; color: #333; }
.task-table { width: 100%; border-collapse: collapse; margin-top: 20px; }
.task-table th, .task-table td { padding: 12px; text-align: left; border-bottom: 1px solid #ddd; }
.task-table th { background-color: #3498db; color: white; }
.status { font-weight: bold; }
</style>
</head>
<body>
<h1>自动化任务监控面板</h1>
<table class="task-table">
<tr>
<th>任务名称</th>
<th>最新执行时间</th>
<th>状态</th>
<th>详情</th>
</tr>
{% for task in tasks %}
<tr>
<td>{{ task.任务名 }}</td>
<td>{{ task.时间 }}</td>
<td class="status" style="color: {{ task.状态颜色 }};">{{ task.状态 }}</td>
<td>{{ task.详情 }}</td>
</tr>
{% endfor %}
</table>
</body>
</html>
"""
# 5. 定义网页访问路径(访问根路径就显示监控面板)
@app.route('/')
def monitor_page():
任务状态 = get_all_task_status()
# 把任务状态传入网页模板,生成最终网页
return render_template_string(网页模板, tasks=任务状态)
# 6. 启动网页服务+内网穿透(让手机能访问)
if __name__ == '__main__':
# 步骤1:获取ngrok密钥(免费注册获取,仅需1分钟)
# 1. 打开https://dashboard.ngrok.com/signup注册账号
# 2. 登录后在“Getting Started”里找到“Your Authtoken”,复制密钥
ngrok_auth_token = "你的ngrok密钥" # 替换成你的密钥
conf.get_default().auth_token = ngrok_auth_token
# 步骤2:启动ngrok,穿透5000端口(Flask默认用5000端口)
public_url = connect(5000).public_url
print(f"手机访问链接:{public_url}") # 打印手机可访问的链接
# 步骤3:启动Flask网页服务
app.run(host='0.0.0.0', port=5000, debug=False) # 0.0.0.0允许内网访问
③ 获取ngrok密钥(免费!1分钟注册)
1. 打开ngrok官网(https://dashboard.ngrok.com/signup),用邮箱注册账号(不用填复杂信息);
2. 登录后,在“Getting Started”页面找到“Your Authtoken”,点击“Copy”复制密钥;
3. 把密钥粘贴到代码里的 ngrok_auth_token = "你的ngrok密钥" 处,保存代码。
④ 启动服务+手机访问(10秒搞定!)
1. 启动网页服务:双击运行“监控网页.py”,命令提示符会显示“手机访问链接”(如 https://abc123.ngrok.io );
2. 手机访问:用手机微信/浏览器打开这个链接,就能看到监控网页——任务状态按“名称、时间、状态、详情”排列,成功标绿、失败标红,字体大小适配手机屏幕,不用放大就能看;
3. 实时更新:网页会实时读取日志数据,只要任务状态变化(比如新发送了邮件),刷新手机网页就能看到最新状态,不用重新启动代码!
效果对比:原来传截图5分钟,现在访问10秒!
以前移动查看:打开电脑→找到Excel监控面板→截图→发微信,共5分钟,还可能发错旧版本;
现在手机访问:点开链接10秒看最新状态,失败任务红底醒目,领导出差时自己就能查,不用你催更。上周领导在机场用手机看监控,还发消息说“这个链接很方便”!
衔接全流程!自动化实现“全场景监控”
现在你的大数据自动化彻底“随时随地可控”:
1. 多任务自动执行→2. 写日志→3. Python生成网页监控面板→4. 手机/电脑点开链接查看→5. 失败发微信预警
从电脑端到手机端,从办公室到户外,不管在哪都能实时掌握任务状态,工作更灵活!
记住:手机看监控不用传截图,Python+Flask+ngrok就行!ngrok密钥免费获取,代码复制就能用,记不住就收藏!
#职场效率 #Python手机监控 #自动化任务移动查看 #拒绝截图传文件 #办公自动化更灵活