高职网站建设专业书,室内设计效果图ppt演示,湘潭做网站 定制磐石网络,番禺网站建设优化推广名称#xff1a;Python通过telnet批量管理配置华为交换机
测试工具#xff1a;ensp, Visual Studio Code #xff0c; Python3.8环境
时间#xff1a;2023.12.23
个人备注#xff1a;在NB 项目中#xff0c;可以批量登录修改交换机配置#xff0c;以此满足甲方爸爸的…名称Python通过telnet批量管理配置华为交换机
测试工具ensp, Visual Studio Code Python3.8环境
时间2023.12.23
个人备注在NB 项目中可以批量登录修改交换机配置以此满足甲方爸爸的无故增加的需求。
1. 脚本需要用到的CVS表格文件
user-cmd.csv #用于保存需要配置到交换机命令
user-info.csv #用于保存交换机IP用户名密码2. 下面是表格内容示范 3. eSNP 拓扑示例 4. 脚本文件需要自己提前下载好对应的模块。
import telnetlib
import time
import getpass
from netmiko.huawei.huawei import HuaweiTelnet
import pandas as pd# 用法示例
文件路径 user-info.csv
命令表格 user-cmd.csv
telnet端口 23 # 根据实际情况修改端口号
#命令列表 [display ip int brief | include Vlan,dis version]
#telnet主机 192.168.56.10
#用户名 admin
#密码 abc-123###########交换机 IP账户密码调用
def 提取IP账户密码信息(文件路径):# 用 pandas 的 read_csv 方法读取 CSV 文件表格数据 pd.read_csv(文件路径)# 提取 IP、账户和密码列的数据ip列表 表格数据[IP].tolist()账户列表 表格数据[账户].tolist()密码列表 表格数据[密码].tolist()#telnet执行命令(ip列表, telnet端口,命令列表,账户列表,密码列表)return ip列表, 账户列表, 密码列表###########交换机命令批量调用
def cmd_list(cmd_pash):# 用 pandas 的 read_csv 方法读取 CSV 文件cmd_data pd.read_csv(cmd_pash)# 提取 IP、账户和密码列的数据input_cmd cmd_data[命令].tolist()#telnet执行命令(ip列表, telnet端口,命令列表,账户列表,密码列表)return input_cmddef telnet执行命令(主机, 端口, 命令列表,用户名,密码):# 创建 Telnet 对象连接 telnetlib.Telnet(主机, 端口, timeout2)# 登录连接.read_until(bUsername:, timeout2)连接.write((用户名 \n).encode(ascii))连接.read_until(bPassword:, timeout2)连接.write((密码 \n).encode(ascii))# 逐个发送命令for 命令 in 命令列表:连接.write((命令 \n).encode(ascii))time.sleep(0.1)# 读取输出注意在实际使用中你可能需要根据命令的特定输出来判断是否需要等待更长的时间输出 连接.read_until(bprompt, timeout1).decode(ascii)print(输出)# 关闭 Telnet 连接连接.close()###############################################################
# 调用函数并传入 CSV 文件的路径
提取IP账户密码信息(文件路径)
cmd_list(命令表格)cmd_list1 cmd_list(命令表格)
ip列表, 账户列表, 密码列表 提取IP账户密码信息(文件路径)# 运行脚本调用CVS 提取的值给 telnet函数
for ip, 账户, 密码 in zip(ip列表, 账户列表, 密码列表):#print(fIP: {ip}, 账户: {账户}, 密码: {密码})print(f开始登录:{ip})telnet执行命令(ip, telnet端口,cmd_list1,账户,密码)time.sleep(0.1)