cisco网络设备配置自动备份

一、背景

客户要用,需求就是这么简单。简单说一下吧。网络设备太多了,传统的手动备份网络设备配置信息工作量越来越大,并且不易管理。由此就必须有一种比较简单的方式了。

二、备份方式

一、cisco设备自带kron命令+TFTP/FTP/HTTP

这种备份方式比较简单,但是有一定的局限性。因为kron命令在比较新的IOS版本上才有,有些说在12.3(4)以上才有,我测试的版本是12.2(33),也有这个命令。

但是kron命令本身并不能自动按照当前日期来命名备份文件,所以还需要脚本来帮助wanc

原理图:

操作步骤:

一、网络设备操作:

kron命令详细可参考http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/cns/configuration/xe-3s/asr1000/cns-xe-3s-asr1000-book/cns-cmd-sched.pdf

使用kron命令配置自动备份任务计划1、kron policy-list backup #创建任务计划2、cli write #保存当前网络设备配置,以防止备份信息不完整3、cli show run | redirect tftp://172.16.20.223/switch1.cfg #switch1.cfg为备份文件名,不同设备使用不同的备份文件名4、exit5、kron occurrence backup at 00:01 1 recurring #每月1日00:01执行备份6、policy-list backup #启动计划任务7、exit使用do show kron schedule命令可以查看计划任务1、do show kron schedule

二、TFTP服务器端操作步骤:

service cron restart

三、好了看看备份效果吧

二、Shell脚本(Telnet/SSH)+TFTP/FTP/HTTP

这种方式适用于ISO版本过低,没有kron命令的方式,原理就是通过在linux服务器上定时执行shell脚本登录到网络设备上备份配置信息到TFTP服务器实现网设备配置信息的自动备份。可以通过Telnet/SSh登陆,Telnet不安全,推荐SSH。如果你一定要用Telnet,那么稍微修改一下脚本就可以了。

原理图:

操作步骤

TFTP服务器端操作步骤:(和第一种方式一样,需要多装一个expect)

yum -y install expect

创建交换机配置信息文件

vi /backup/tftpboot/switch.confcisco|172.16.20.1|cisco|ciscocisco|172.16.20.2|cisco|cisco说明:一共四列,中间用竖线分割。第一列:交换机登录用户名;第二列:交换机登录IP地址;第三列:交换机登录密码;第四列:交换机enable密码;每一行为一台交换机的配置信息。

创建备份脚本

vi /backup/tftpboot/switch_backup.sh#!/bin/bashDate=`date +%F`TFTP=172.16.20.223 #TFTP服务器IP地址,只需要改这一个#我创建了两个模块,我解释一下,因为第一次访问的时候会提示你是否信任该主机,然后将该主机信息添加到known_hosts文件中,而以后访问的时候只要在known_hosts文件中发现有此主机,就不会再次询问,那么使用同一组expect语言就会报错,所以写了两个函数,一个用来第一次登陆,一个用来信任主机之后登陆,比较拙劣。first_login() {expect <<EOF	spawn ssh [email protected]$server 	expect "(yes/no)"	send "yes\r"	sleep 1	expect "Password:"  	send "$passwd\r"  	sleep 1	expect "*>"  	send "en\r"  	sleep 1  	expect "Password:"  	send "$enpasswd\r"  	sleep 1  	expect "*#"	send "copy startup-config tftp:\r"	expect "Address"	send "${TFTP}\r"	expect "Destination"	send "${server}-${Date}.conf\r"  	sleep 5	send "exit\r"  	interactEOF}login() {expect <<EOF	spawn ssh [email protected]$server 	sleep 1	expect "Password:"  	send "$passwd\r"  	sleep 1	expect "*>"  	send "en\r"  	sleep 1  	expect "Password:"  	send "$enpasswd\r"  	sleep 1  	expect "*#"	send "copy startup-config tftp:\r"	expect "Address"	send "${TFTP}\r"	expect "Destination"	send "${server}-${Date}.conf\r"  	sleep 5	send "exit\r"  	interactEOF}for line in `cat /backup/tftpboot/switch.conf`do	name=`echo $line |awk -F "|" ‘{print $1}‘`	server=`echo $line |awk -F "|" ‘{print $2}‘`	passwd=`echo $line |awk -F "|" ‘{print $3}‘`	enpasswd=`echo $line |awk -F "|" ‘{print $4}‘`if grep "$server" $HOME/.ssh/known_hosts > /dev/null 2>&1;thenloginelsefirst_loginfi  sleep 3done

执行脚本、添加计划任务

chmod +x /backup/tftpboot/switch_backup.shecho ‘01 0 1 * * /bin/sh /backup/tftpboot/switch_backup.sh > /dev/null 2>&1‘ >> /var/spool/cron/rootchmod 600 /var/spool/cron/rootservice cron restart

网络设备操作:

a) 配置登录用户名和密码,配置enable密码

b) 配置ssh v2版本登录

OK,比较简单,到这里就结束了。来看一下效果。

OK,备份完成。

时间: 2024-12-22 08:47:00

cisco网络设备配置自动备份的相关文章

python netmiko实现cisco网络设备配置备份

import time from netmiko import ConnectHandler from netmiko.ssh_exception import NetMikoTimeoutException from netmiko.ssh_exception import NetMikoAuthenticationException import sys import getpass from datetime import datetime import os def NetworkDev

H3C 思科华为 等网络设备配置文档自动备份思路及实现方法

网络设备一般包含交换机.路由器.防火墙H3C .思科.华为网络设备都可以使法这个方法自动备份配置文档 一般情况下我们是更新网络设配置,然后手动导出配置文档,save到一个指定目录,这种方式网络设备数量稍微较多文档保存会存在问题网络设备一般都带有tftp功能,我们可以利用设备Tftp功能自动备份配置文档1:以下是自动份备效果Tftp服务器备份文件夹 查看2019年3月23网络设备配置文档,ip地址.cfg文档对应交换机配置文件 安装TFTP服务端 1:修改Home[HOME]D:\switch\D

cisco 交换机自动备份配置

作为一个IT网络攻城狮,备份网络设备配置是我们日常的工作之一,但是随着设备的增加,以前很erasy的手动备份,现在也越来越花费时间了,博主作为一个IT懒人,坚信有一定有偷懒的方式! 前期准备:1.NTP server 2.ftp/tftp server 3.命令配置 1st:网络中时间很重要,所以需要ntp server 你可以用windows linux 搭建NTP server 如果有AD域环境,也可以直接指向DC 2st:需要搭建ftp/tftp server 用户保存我们的备份文件,我现

Syncovery 是目前功能最为强大的实时自动备份工具

Syncovery Pro(原名叫做Super Flexible Synchronizer) 是目前功能最为强大的实时自动备份工具,连FTP.WebDAV等全部支持! 最近从V6开始改用比较好记.易懂的新名称 SynCovery 了. 功能与Super Flexible Synchronizer仍然完全相同. 备份您的数据和同步个人电脑,Mac电脑,服务器,笔记本电脑和在线存储空间. 您可以设置很多不同的工作,因为你需要运行它们手动或使用排程. Syncovery与本地硬盘,网络驱动器和任何其他

Lync 小技巧-49-Lync 自动备份-批量管理-用户(免费视频)

自从2010年开始,自从Lync Server 2010开始,我都在研究Lync 自动备份和批量管理用户,当年都做成功,做标准过. 不过都是图片,未写博客,为什么呢? 有可能你有这样那样的假设,但是今天可以全部分享出来了,在做Lync 第二学期培训的时候,同时将这视频录制出来. 可能录制的效果不是太好,请各位多见谅!(本课程是Lync 日常管理课程,涉及内容居多,未能一一做成PPT讲解.) Lync 自动备份-批量管理用户 链接:http://pan.baidu.com/s/1qWz9DLi 密

在CentOS下自动备份mysql

在CentOS下自动备份mysql数据库,并差异同步到其它网络主机上 1.在/root/mysql_backup/下添加backup.sh:vim /root/mysql_backup/backup.sh,然后在里面添加以下代码: mysqldump  -uroot  -p 'a123456'  mysqltest  > /root/mysql_backup/`date +%Y-%m-%d~%H:%M:%S`.bak // 备份数据库 rsync  -av  /root/mysql_backup

服务器文件自动备份工具

网站经常需要定期备份文件,天天折腾累死人 ,索性写了个自动备份 的工具,让它运行在服务器上,每天凌晨自动将需要备份的数据打包成压缩文件并传到另外的服务器. 1.定时执行任务,用到开源框架Quartz.net 使用方法: 引用Quartz.dll IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler(); scheduler.Start(); IJobDetail job = JobBuilder.Create<HelloJo

python多线程自动备份华为H3C交换机配置和LOG

之前试过用expect结合bash脚本备份交换机LOG,但由于是串行执行,设备很多的情况下耗时太长,而且经常出错导致备份不完整.于是在网上找python多线程处理的相关文章,但基本都是基于tftp备份当时运行的配置文件,不能根据自定义巡检命令取得返回结果,我想要的是类似SECURECRT下用.vbs脚本备份的效果,所以根据网上一些例子做了这个备份脚本.由于是多线程执行,所以执行时长决定于最多配置的那台设备的命令运行时长. [[email protected] shell]# cat /etc/r

备份校验两不误,MySQL自动备份还原校验设计详解

作者介绍庞阔,优朋普乐传媒运维基础部经理.负责数据库运营管理及平台设计开发,监控设计改进,问题跟踪处理,机房网络维护管理,目前四个专利已在专利局申请中.擅长数据库运维管理及Shell.Perl.PHP编写. 最近关于数据库故障出现的问题较多,不论大小公司对数据的备份要求都很高,但对校验数据备份的有效性要求更为迫切,很多公司对于自动备份和还原都已经形成体系,但对于还原后的备份有效性校验可能都不太完善,而且目前网上也没有较为完善的检验机制(可能我没找到). 对数据库备份的有效性校验的方法或样例选择,