python批量备份华为、H3C交换机配置
时间: 2023-08-10 18:09:04 浏览: 176
好的,这里是一个批量备份华为、H3C交换机配置的 Python 代码示例:
```python
import paramiko
import time
# 配置交换机信息
device_list = [
{'ip': '192.168.1.1', 'username': 'admin', 'password': 'password', 'type': 'huawei'},
{'ip': '192.168.1.2', 'username': 'admin', 'password': 'password', 'type': 'h3c'}
]
tftp_server = '192.168.1.3' # TFTP服务器IP地址
# 循环备份交换机配置
for device in device_list:
# 连接交换机
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=device['ip'], username=device['username'], password=device['password'])
# 登录交换机
if device['type'] == 'huawei':
ssh_shell = ssh.invoke_shell()
ssh_shell.send('screen-length 0 temporary\n')
time.sleep(1)
ssh_shell.send('sys\n')
time.sleep(1)
ssh_shell.send('user-interface vty 0 4\n')
time.sleep(1)
ssh_shell.send('user privilege level 15\n')
time.sleep(1)
ssh_shell.send('quit\n')
time.sleep(1)
ssh_shell.send('quit\n')
time.sleep(1)
else:
ssh_shell = ssh.invoke_shell()
ssh_shell.send('screen-length 0 temporary\n')
time.sleep(1)
ssh_shell.send('system-view\n')
time.sleep(1)
ssh_shell.send('user-interface vty 0 4\n')
time.sleep(1)
ssh_shell.send('user privilege level 3\n')
time.sleep(1)
ssh_shell.send('quit\n')
time.sleep(1)
ssh_shell.send('quit\n')
time.sleep(1)
# 进入系统视图
if device['type'] == 'huawei':
ssh_shell.send('sys\n')
time.sleep(1)
else:
ssh_shell.send('system-view\n')
time.sleep(1)
# 备份配置
if device['type'] == 'huawei':
ssh_shell.send(f'save configuration to tftp {tftp_server} huawei-{device["ip"]}.cfg\n')
time.sleep(5)
ssh_shell.send('y\n')
time.sleep(5)
else:
ssh_shell.send(f'save configuration to tftp {tftp_server} h3c-{device["ip"]}.cfg\n')
time.sleep(5)
ssh_shell.send('y\n')
time.sleep(5)
# 关闭连接
ssh_shell.close()
ssh.close()
```
说明:
1. 首先设置交换机列表,列表中每个元素是一个字典,包含交换机的 IP 地址、用户名、密码和类型。
2. 设置 TFTP 服务器的 IP 地址。
3. 循环备份每个交换机的配置,连接交换机,登录交换机,进入系统视图,备份配置,关闭连接。
4. 备份配置的文件名中加入了交换机的 IP 地址,以便区分不同的交换机。
请注意,上述代码中备份配置的文件名中包含了交换机的 IP 地址,因此请确保所有的 IP 地址都是唯一的。如果需要备份多个相同 IP 地址的交换机,可以在备份文件名中加入其他的标识符来区分不同的交换机。
阅读全文