Python 批量备份交换机脚本 - 自动化网络管理
以下是一个使用 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函数,并传递相应的参数。
请注意,此脚本仅为示例,实际使用时可能需要根据具体的交换机品牌和型号进行适当的修改。
原文地址: https://www.cveoy.top/t/topic/plYg 著作权归作者所有。请勿转载和采集!