以下是一个使用 Python 编写的批量备份交换机的脚本示例:

import paramiko
import time

def backup_switch(ip, username, password):
    try:
        # 连接到交换机
        client = paramiko.SSHClient()
        client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        client.connect(ip, username=username, password=password)

        # 执行备份命令
        command = 'show run'
        stdin, stdout, stderr = client.exec_command(command)
        output = stdout.read().decode()

        # 保存备份文件
        timestamp = time.strftime('%Y%m%d%H%M%S')
        filename = f'switch_backup_{ip}_{timestamp}.txt'
        with open(filename, 'w') as file:
            file.write(output)

        print(f'交换机 {ip} 的配置已备份至文件 {filename}')

        client.close()
    except Exception as e:
        print(f'备份交换机 {ip} 时发生错误:{str(e)}')

if __name__ == '__main__':
    # 定义交换机的IP地址、用户名和密码列表
    switches = [
        {'ip': '192.168.1.1', 'username': 'admin', 'password': 'password1'},
        {'ip': '192.168.1.2', 'username': 'admin', 'password': 'password2'},
        {'ip': '192.168.1.3', 'username': 'admin', 'password': 'password3'}
    ]

    # 逐个备份交换机
    for switch in switches:
        backup_switch(switch['ip'], switch['username'], switch['password'])

在以上示例中,我们使用了paramiko库来实现 SSH 连接和执行命令。首先,我们定义了一个backup_switch函数,该函数接收交换机的 IP 地址、用户名和密码作为参数。在函数内部,我们使用paramiko.SSHClient()创建 SSH 客户端对象,并使用client.connect()方法连接到交换机。然后,我们使用client.exec_command()方法执行show run命令,并通过stdout.read().decode()读取命令输出。接下来,我们使用当前时间生成一个备份文件名,并将命令输出保存到文件中。最后,我们打印备份完成的消息,并关闭 SSH 连接。

在if __name__ == '__main__':部分,我们定义了一个交换机列表,其中包含了每个交换机的 IP 地址、用户名和密码。然后,我们使用一个循环逐个备份交换机。在循环中,我们调用backup_switch函数,并传递相应的参数。

请注意,此脚本仅为示例,实际使用时可能需要根据具体的交换机品牌和型号进行适当的修改。

Python 批量备份交换机脚本 - 自动化网络管理

原文地址: https://www.cveoy.top/t/topic/plYg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录