用python代码写一个定期备份H3C交换机配置
时间: 2023-12-17 13:49:55 浏览: 170
交换机自动化备份配置(H3C)
好的,以下是一个用Python编写的定期备份H3C交换机配置的示例代码:
```python
import paramiko
import time
import os
# 输入交换机的IP地址、用户名、密码、备份文件保存路径和备份周期
ip = input("请输入交换机的IP地址:")
username = input("请输入交换机的用户名:")
password = input("请输入交换机的密码:")
save_path = input("请输入备份文件保存的路径:")
backup_interval = int(input("请输入备份周期(单位:天):"))
# 连接SSH
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip, username=username, password=password)
print("SSH连接成功!")
# 发送命令
ssh_shell = ssh.invoke_shell()
ssh_shell.send("system-view\n")
time.sleep(1)
ssh_shell.send("backup configuration to ftp 192.168.1.1 H3C_SWITCH.cfg\n")
time.sleep(1)
ssh_shell.send(password + "\n")
time.sleep(5)
# 检查备份文件是否成功上传至FTP服务器
ftp_client = paramiko.Transport(('192.168.1.1'), 21)
ftp_client.connect(username='ftpuser', password='ftppassword')
sftp = paramiko.SFTPClient.from_transport(ftp_client)
remote_file = '/backup/H3C_SWITCH.cfg'
if sftp.stat(remote_file):
print("备份文件上传成功!")
# 将备份文件保存到本地
local_file = os.path.join(save_path, 'H3C_SWITCH.cfg')
sftp.get(remote_file, local_file)
print("备份文件保存成功!")
else:
print("备份文件上传失败!")
# 关闭连接
ssh_shell.close()
ssh.close()
ftp_client.close()
# 定期备份
while True:
time.sleep(86400 * backup_interval)
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip, username=username, password=password)
print("SSH连接成功!")
ssh_shell = ssh.invoke_shell()
ssh_shell.send("system-view\n")
time.sleep(1)
ssh_shell.send("backup configuration to ftp 192.168.1.1 H3C_SWITCH.cfg\n")
time.sleep(1)
ssh_shell.send(password + "\n")
time.sleep(5)
ftp_client = paramiko.Transport(('192.168.1.1'), 21)
ftp_client.connect(username='ftpuser', password='ftppassword')
sftp = paramiko.SFTPClient.from_transport(ftp_client)
if sftp.stat(remote_file):
print("备份文件上传成功!")
local_file = os.path.join(save_path, 'H3C_SWITCH.cfg')
sftp.get(remote_file, local_file)
print("备份文件保存成功!")
else:
print("备份文件上传失败!")
ssh_shell.close()
ssh.close()
ftp_client.close()
```
您可以在运行之前修改代码中的交换机IP地址、用户名、密码、备份文件保存路径和备份周期来满足您的实际需求。在运行代码之后,程序将自动连接交换机、备份配置文件并将备份文件保存到本地。并且,程序还将每隔一定的时间自动进行备份。
阅读全文