如何备份和恢复从许多思科路由器和交换机的configuration从Linux?

我正在寻找一种备份,保存,版本和恢复思科networking设备configuration的方法。

我需要能够在许多路由器和交换机上自动获取和压入configuration文件。

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

  • 更改时自动从设备获取configuration(由系统日志触发)
  • 保存configuration的每个版本
  • 在单个设备上推送configuration
  • 以一种脚本方式在一堆设备上推送configuration

所以我看了看似乎是一个很好的解决scheme,我没有发现任何符合这些标准的东西。 很奇怪,没有为这些需求而构build的Linux事物。

这是我发现的:

  • Rancid是一个很好的脚本,可以获取configuration并将每个版本保存在CVS或SVN存储库中
  • Syslog-ng可以帮助我告诉Rancid在syslog发送时再次检查设备的configuration
  • CVS / SVN / Git /任何可以实现版本和提供不错的差异
  • 我可以用clogin(Rancid)推configuration,但是这根本不好
  • 我可以推TFTP的configuration,但我不得不脚本(主要是大规模部署)。

我是否缺less一个提供所需function的工具? 奇怪的是它在Linux上不存在。

谢谢你的帮助 :)

这是我发现的迄今为止最容易pipe理的…虽然有点粗糙,尤其是对于不喜欢CLI的人来说。

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

这是一个期望脚本,用来发送命令到许多思科设备。

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

我只是把它tftpconfiguration到我们的中央configurationtftp服务器每晚。

 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 --- 

这将创build一个名为routerx.20130707的configuration文件

如果你改变

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

 DATE=`date +%w` 

你只需要一个滚动的7天窗口configs routerx.1,routerx.2,… routerx.7

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

每个脚本采用设备名称填充的文件的参数,第二个参数是“YYYYMMDD”中的date。 如果是备份,则会将date附加到configuration文件名。 如果是恢复,则告诉设备加载“$ HOST。$ DATE”。

我从cron运行备份。

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