如何从Linux上备份和恢复许多Cisco路由器和交换机的配置?

我正在寻找一种备份,保存,版本和恢复思科网络设备配置的方法.

我需要能够在许多路由器和交换机上自动GET和PUSH配置文件.

我正在寻找Orion的某种替代品,所以我可以:

>更改时自动从设备获取配置(由syslog触发)
>保存配置的每个版本
>在单个设备上推送配置
>以脚本方式在一堆设备上推送配置

所以我看了一下看起来很不错的解决方案,我发现没有什么能满足这些标准.很奇怪,没有针对这些需求构建的Linux产品.

这是我发现的:

> Rancid是一个很好的脚本,可以获得配置并保存CVS或SVN存储库中的每个版本
> Syslog-ng可以帮助我告诉Rancid在发送系统日志时再次检查设备的配置
> CVS / SVN / Git /无论什么可以实现版本化并提供不错的差异
>我可以用clogin(Rancid)推动配置,但这并不好看
>我可以使用TFTP推送配置,但我必须编写脚本(主要用于大规模部署).

我错过了一个提供我需要的功能的工具吗?奇怪的是它在Linux上不存在.

谢谢你的帮助 :)

解决方法

这是我发现到目前为止最容易管理的…虽然它有点粗糙,特别是对于那些不喜欢CLI的人.

http://sourceforge.net/projects/cosi-nms/files/ciscocmd/

这是一个用于向许多cisco设备发送命令的expect脚本.

它允许您传入一个文件,其中包含所有设备的名称以及要在设备上执行的命令.

我只是每晚都有tftp配置到我们的中央配置tftp服务器.

copy system:running-config tftp://mytftpserver/this-router-config

要恢复你可以申请:

copy tftp://mytftpserver/this-router-config system:running-config

一个简单的例子是有一个名为“myrouters”的文件

--- CUT --- 
#!/bin/sh
DATE=`date +%Y%m%d`
for THISHOST in `cat myrouters`
do
ciscocmd [auth params] -c "copy system:running-config tftp://mytftpserver/$THISHOST.$DATE"
done
--- CUT ---

这将创建一个名为routerx.20130707的配置文件

如果你改变了

DATE=`date +%Y%m%d`

DATE=`date +%w`

你只需要一个7天的配置窗口
routerx.1,routerx.2,.. routerx.7

以上是一个非常简单的例子,但这主要是我所做的.我实际上有一个“config-backup.sh”和一个“config-restore.sh”.

每个脚本都使用填充了设备名称的文件名的参数,第二个参数是“YYYYMMDD”中的日期.如果是备份,则会将日期附加到配置文件名.如果是恢复,它会告诉设备加载“$HOST.$DATE”.

我从cron运行备份.

有了这个,我可以很容易地从我的手机恢复任何东西.

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...