网络运维人,大多被这些重复工作困扰:
几十上百台交换机,手动敲命令配VLAN、改端口,易出错还费时间;定时备份配置、逐台巡检核对,繁琐且易遗漏,往往熬到深夜才能完成。
这些重复繁琐的工作,用Python脚本就能自动完成,无需手动值守,省时又零误差。本文聚焦Python网络运维核心实操,不讲复杂原理,只给可直接套用的干货,新手也能快速上手。
一、Python到底能帮你省多少事?
网络运维的核心痛点是重复劳动——相同命令和操作,需在数十上百台设备上反复执行。Python的核心作用,就是将这些重复操作写成自动化脚本,一键运行批量完成,既省时间又零误差。
核心应用场景(重点划记):
•批量配置设备:一键给所有交换机配VLAN、划端口、设IP,10分钟搞定数十台,无需逐台登录;
•自动备份配置:定时自动登录设备备份配置,异常自动提醒,彻底告别手动备份;
•自动化巡检:自动核对设备端口、CPU/内存、VLAN配置,生成巡检报告,无需手动核对;
•故障快速排查:自动ping设备、检查端口连通性,快速定位故障点,减少排查时间。
二、实操干货:2个常用脚本参考
无需从零学Python,掌握这2个高频脚本,就能解决80%的重复运维工作,新手可直接复制使用。
2.1 利用Python+Netmiko,批量备份交换机配置
Netmiko是Python网络设备连接库,可轻松连接华为、思科、华三各类交换机,实现命令自动执行和配置备份。
核心逻辑:
① 脚本定义所有交换机IP、登录账号密码;② 自动登录每台设备;③ 执行备份命令抓取配置;④ 按设备IP命名,自动保存至本地文件夹,方便查找。
关键优势:一次配置终身复用,后续只需修改设备列表,即可批量备份,无需手动登录每台设备。
完整可运行代码(适配华为、思科,直接复制使用):
2.1.1 环境部署步骤(新手必看,一步不落)
环境部署核心是安装Python和Netmiko依赖,适配Windows、Linux、Mac系统,步骤统一,全程鼠标操作即可。
1. 安装Python(版本3.7及以上,推荐3.9,兼容性最佳)
•下载地址:https://www.python.org/downloads/(官网免费,选择对应系统版本,Windows选“Windows Installer (64-bit)”);
•安装重点:务必勾选“Add Python to PATH”(避免后续命令报错),点击“Install Now”完成安装;
•验证方法:Win+R输入“cmd”,输入“python --version”,显示版本号即安装成功。
2. 安装Netmiko依赖(核心连接库)
•cmd中输入命令:pip install netmiko,回车等待安装;
•提示“Successfully installed”即安装成功;
•常见问题:提示“pip不是内部命令”,需重新安装Python并勾选“Add Python to PATH”。
2.1.2 代码编写步骤(脚本参考,复制+修改即可)
无需手写代码,5分钟即可完成,步骤如下:
•第一步:桌面新建文本文档,后缀改为“.py”(如“switch_backup.py”);
•第二步:将下方完整代码复制粘贴到.py文件中;
•第三步:修改3处关键参数(其余不动):① device_type(华为填“huawei”,思科填“cisco_ios”);② ip(设备实际IP);③ username/password(登录账号密码)。
2.1.3 代码运行步骤(点击就能执行,无需复杂操作)
•1. 保存修改后的代码(Ctrl+S);
•2. cmd中进入文件所在目录(如桌面输入cd Desktop);
•3. 输入python switch_backup.py(替换为自己的文件名)运行;
•4. 运行完成后,备份文件自动保存至桌面“switch_backup”文件夹(自动创建)。
pythonimport netmikoimport osfrom datetime import datetime# 1. 定义设备列表(修改为你的设备信息)devices = [{"device_type": "huawei", # 设备类型,思科填"cisco_ios",华三填"hp_comware""ip": "192.168.1.1", # 交换机IP地址"username": "admin", # 登录账号"password": "123456", # 登录密码"secret": "enable", # 特权模式密码(无则省略)},{"device_type": "huawei","ip": "192.168.1.2","username": "admin","password": "123456",}]# 2. 创建备份文件夹(不存在则自动创建)backup_dir = "switch_backup"if not os.path.exists(backup_dir):os.makedirs(backup_dir)# 3. 批量备份核心逻辑for device in devices:try:# 连接设备conn = netmiko.ConnectHandler(**device)# 进入特权模式(华为无需额外操作,思科需执行enable)if device["device_type"] == "cisco_ios":conn.enable()# 执行备份命令,抓取配置output = conn.send_command("display current-configuration") # 华为命令# 思科设备替换为:output = conn.send_command("show running-config")# 4. 保存配置到本地,按「IP+时间」命名backup_time = datetime.now().strftime("%Y%m%d_%H%M%S")backup_file = f"{backup_dir}/{device['ip']}_{backup_time}.txt"with open(backup_file, "w", encoding="utf-8") as f:f.write(output)print(f"✅ {device['ip']} 配置备份成功,文件保存至:{backup_file}")# 关闭连接conn.disconnect()except Exception as e:print(f"❌ {device['ip']} 备份失败,错误原因:{str(e)}") |
代码说明:修改设备列表信息,安装依赖后即可批量备份,异常设备会提示错误原因,便于排查。
2.2 Python脚本实现VLAN/端口批量配置
批量配置VLAN(如VLAN 10、20),手动操作需半天,脚本1分钟即可完成。
核心逻辑:
① 定义VLAN和端口配置信息(如端口1-10归属VLAN 10);② 脚本自动登录设备,执行配置命令;③ 配置完成后自动验证生效情况。
关键优势:零手动输入,避免命令错误,配置后自动校验,减少返工。
完整可运行代码(批量配置VLAN+端口,适配华为):
说明:环境部署、代码编写/运行步骤,与批量备份脚本一致,已安装环境可直接修改参数运行。
重点修改2处参数(其余不动):
•1. 设备列表:修改“devices”中的device_type、ip、username、password,对应自身设备;
•2. 配置信息:修改“vlan_config”(VLAN号、名称)和“port_config”(端口范围、所属VLAN),按需调整。
思科设备适配(仅2处修改):
•1. device_type改为“cisco_ios”;
•2. 保存命令替换为“conn.send_command("write memory")”,其余不变。
pythonimport netmiko# 1. 定义设备列表(修改为你的设备信息)devices = [{"device_type": "huawei", "ip": "192.168.1.1", "username": "admin", "password": "123456"},{"device_type": "huawei", "ip": "192.168.1.2", "username": "admin", "password": "123456"},]# 2. 定义需要配置的VLAN和端口信息(按需修改)vlan_config = ["vlan 10", # 创建VLAN 10"name IT_Department",# VLAN命名(可选)"vlan 20", # 创建VLAN 20"name Finance", # VLAN命名(可选)]port_config = ["interface range GigabitEthernet 0/1 to 0/10", # 批量选择端口1-10"port access vlan 10", # 端口加入VLAN 10"port link-type access", # 设置端口为access模式"shutdown", # 关闭端口(可选,重启生效)"undo shutdown", # 开启端口"interface range GigabitEthernet 0/11 to 0/20",# 批量选择端口11-20"port access vlan 20", # 端口加入VLAN 20"port link-type access","shutdown","undo shutdown",]# 3. 批量配置核心逻辑for device in devices:try:# 连接设备conn = netmiko.ConnectHandler(**device)# 进入全局配置模式conn.config_mode()# 执行VLAN配置命令conn.send_config_set(vlan_config)# 执行端口配置命令conn.send_config_set(port_config)# 保存配置(华为命令,思科替换为"write memory")conn.send_command("save force")# 验证配置(抓取VLAN信息)verify = conn.send_command("display vlan brief")print(f"✅ {device['ip']} 配置完成,VLAN验证信息:\n{verify}")# 关闭连接conn.disconnect()except Exception as e:print(f"❌ {device['ip']} 配置失败,错误原因:{str(e)}") |
代码说明:按需修改VLAN和端口配置,适配思科设备后,运行即可批量完成配置。
三、Python运维上手容易,入门门槛真的很低
很多运维小伙伴担心:“不会Python,能学会吗?”
答案是:完全可以!
网络运维用Python,掌握基础语法和常用网络库(Netmiko等),即可套用现成脚本,修改参数就能用。无需从头写代码,只需根据设备和需求修改参数,就能实现自动化。
四、写在最后
网络运维的核心,是高效解决问题,而非单纯“会敲命令”。Python对网络运维人而言,是提高效率、摆脱加班的神器,能替代大部分重复工作,让你从繁琐劳动中解放出来。
觉得本文干货实用,欢迎点赞+转发给同行,一起提升效率、告别加班~也别忘了收藏本文,后续用到脚本时,直接打开就能查看、复制,省去反复查找的麻烦,新手也能轻松上手实操~