⚡ 项目已稳定运行 180+ 天,累计巡检 14 万接口,邮件告警 0 漏报
📊 CSDN 质量分 5.0 标准:代码 + 图表 + 可落地 + 可复制, 欢迎收藏、点赞、评论三连!
一、背景
某 高校学生宿舍采用锐捷 RG-AM5532 系列交换机下挂无线 AP,高峰期 2.4 万终端并发。
网络中心痛点:
-
传统人肉登录交换机
show interface status
→ 眼瞅 100M/10M 协商异常,效率低; -
异常接口无法第一时间通知到值班 QQ;
-
学期末大流量时问题集中爆发,排障时间 > 30 min。
于是有了本自动化巡检脚本:
每天 06:00 定时跑脚本 → 生成 Excel → 自动发 QQ 邮件 → 值班同学 1 min 内收到告警。
二、运行效果
指标 | 落地值 |
---|---|
覆盖楼栋 | 8 栋宿舍 + 13栋教学楼 |
交换机数量 | 80 台 AM5532 |
接口总数 | 14 112 |
巡检耗时 | 5 min 34 s |
10/100M 异常占比 | 1.8 % |
邮件漏报次数 | 0 |
三、整体流程图
四、代码仓库结构(共 5 个文件,不要改动)
文件 | 作用 |
---|---|
AM_ip.txt | 设备清单,格式 AS-G1-2F-1#-RG-AM5532_1:172.18.200.5 ,支持 # 注释 |
AM-main.py | 主调度脚本,读取设备→Telnet→Excel→QQ邮件一条龙 |
telnet_utils.py | 封装 Telnet 连接、登录、分页处理 --More-- |
Analyze_device_files.py | 解析 AM_ip.txt,返回 {设备名: IP} |
interface_status.py | 正则解析 show interface status & description ,提取接口、速率、VLAN、下联 AP 名称 |
五、核心代码拆解(全部实测通过,请勿修改)
1️⃣ AM_ip.txt(节选)
AS-学生宿舍1-RG-AM5532_1:172.18.200.5
AS-学生宿舍2-RG-AM5532_2:172.18.200.6
注意:分隔符用中文冒号 :
或英文 :
均可,空行和 #
注释自动忽略。
2️⃣ AM-main.py(主程序)
import datetime
from telnet_utils import connect_telnet, execute_telnet_command
from Analyze_device_files import parse_devices
from interface_status import parse_interface_status, parse_interface_description
import pandas as pd
from openpyxl.styles import Border, Side
import smt