python批量配置交换机

1、新建一个文件夹,新建switch_list.txt文件

2、在txt文件中存入需要配置的交换机ip

3、在.py文件中配置以下代码

username与password项根据实际情况更改

tn.write处增加需要下发给交换机的命令

terminal length 0 #设置交换机输出内容不分页

最后可输出配置过程日志,或者show run导出交换机配置。文件默认导出在当前目录下

import telnetlib
import time
import os

# 配置Telnet连接信息
username = b'admin\n'  # Telnet用户名,注意要使用字节串
password = b'Xhnetwork@123\n'   # Telnet密码,注意要使用字节串
port = 23  # Telnet端口号

# 读取交换机列表
with open('switch_list.txt') as f:
    switch_list = f.read().splitlines()

# 遍历交换机列表,备份配置文件
for switch_ip in switch_list:
    print(f'正在备份交换机 {switch_ip} 的配置文件...')

    # 建立Telnet连接
    tn = telnetlib.Telnet(switch_ip, port=port, timeout=10)

    # 登录
    tn.read_until(b'>>User name:', timeout=5)
    tn.write(username)
    tn.read_until(b'>>User password:', timeout=5)
    tn.write(password)


    # 发送命令
    tn.write(b'enable\n')
    tn.write(password)
    tn.write(b'ter len 0\n')
    tn.write(b'show run\n')
    

    time.sleep(5)

    # 获取输出结果
    output = tn.read_very_eager().decode('gbk')

    # 关闭Telnet连接
    tn.write(b'quit\n')
    tn.close()

    # 保存备份文件
    filename = f'{switch_ip}配置.txt'
    with open(filename, 'w') as f:
         f.write(output)

    print(f'交换机 {switch_ip} 的配置文件备份完成,保存为 {filename}。')

python

tn.write(b'show run\n') #在交换机中写入show run文本, \n换行

with open('switch_list.txt') as f: #获取switch_list.txt文件中的内容读取出来。 read是常用的读取文件操作

switch_list = f.read().splitlines()

output = tn.read_very_eager().decode('gbk') #获取以上ptyhon执行的结果信息