目录
前言
将网络设备的配置做备份是网络运维中必不可少的一项工作,根据公司的规模和要求不同,管理层可能会要求对网络设备的配置做月备、周备甚至日备,传统的备份思科交换机配置的办法是手动SSH远程登陆设备,然后输入命令term len 0和show run,将回显内容手动复制,粘贴到一个TXT或者Word文本文件中,效率十分低下,在有成百上千台设备的需要备份的网络中尤为明显
1.实验目的
在centos 7主机上开启FTP Server服务,创建Python脚本,将SW1-SW5的running configuration备份保存到FTP服务器
2.实验拓扑
设备管理地址:SW1:192.168.200.2
SW2:192.168.200.3
SW3:192.168.200.4
虚拟机IP地址:192.168.200.100
3.实验准备
(1)准备一台Centos 7的虚拟机,并且开启FTP服务,确保FTP登录没有问题,保证虚拟机和网络设备能互通,设备互通如下图所示
FTP服务器测试:
如果不会配置FTP服务器,如果会可以直接跳过
请参考一下配置:
yum -y install vsftpd lftp //lftp可以不用装,用来本地测试的工具 systemctl restart vsftpd systemctl enable vsftpd systemctl status vsftpd //查看vsftpd运行服务状态 useradd python password python //创建FTP用户 systemctl stop firewalld //关闭防火墙和SElinux,生产环境不建议这样,实验环境无所谓 setenforce 0
(2)创建实验脚本backupconfig.py,代码如下
import paramiko import time username = "python" password = "python" f = open('ip_list.txt','r') for line in f.readlines(): ip = line.strip() client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect(hostname=ip, username=username, password=password,look_for_keys=False) print("成功登录到{}".format(ip)) command = client.invoke_shell() command.send('save\n') time.sleep(1) command.send('Y\n') time.sleep(1) command.send('\n') time.sleep(1) command.send('ftp 192.168.200.100\n') time.sleep(1) command.send('python\n') time.sleep(1) command.send('python\n') command.send('bin\n') command.send('put vrpcfg.zip ' + ip + '_vrpcfg.zip' + '\n') time.sleep(1) command.send('quit\n') time.sleep(1) output = command.recv(65535) print(output.decode('ascii')) f.close() client.close()
4.验证
代码的讲解都在前几个实验,这里就不在赘述了