我正在寻找一种通过自动过程备份控制器配置文件的方法。我已经看到了指向Web界面的链接,该链接似乎在一次将配置的tftp复制到远程主机上,但是我正在寻找一种安排复制的方法。

有人吗?知道一种自动为Cisco WLC进行配置备份的方法吗?

评论

你看到这个问题了吗?不直接适用,但可能有帮助...

感谢@CraigConstantine,但是WLC运行的自定义软件未遵循某些常见的IOS原理,例如“ term len 0”-某处可能有一个晦涩的命令,允许进行纯配置转储,但我尚未找到它。

...该思科支持线程如何?

理想情况下,将使用Cisco Prime基础设施,但是我怀疑OP正在寻找零成本的选择。

#1 楼

使用脚本登录到WLC并运行传输命令:
http://www.cisco.com/en/US/docs/wireless/controller/6.0/command/reference/cli60.html#wp1327209

您可以使用它通过TFTP / SFTP / FTP将WLC的配置上传到另一台服务器。

(Cisco Controller) >transfer upload mode sftp 

(Cisco Controller) >transfer upload username my-osx-user

(Cisco Controller) >transfer upload password my-os-password

(Cisco Controller) >transfer upload serverip 192.168.1.10

(Cisco Controller) >transfer upload path /Users/my-osx-user/

(Cisco Controller) >transfer upload filename wlc.config

(Cisco Controller) >transfer upload datatype config

(Cisco Controller) >transfer upload start

Mode............................................. SFTP
SFTP Server IP................................... 192.168.1.10
SFTP Server Port................................. 22
SFTP Path........................................ /Users/my-osx-user/
SFTP Filename.................................... wlc.config
SFTP Username.................................... my-osx-user
SFTP Password.................................... *********
Data Type........................................ Config File 
Encryption....................................... Disabled

                                                          **************************************************
                            ***  WARNING: Config File Encryption Disabled  ***
                                                                              **************************************************


Are you sure you want to start? (y/N) y

SFTP Config transfer starting.

File transfer operation completed successfully.

(Cisco Controller) >


链接指向WLC 6.0,该示例在7.4上运行。

评论


sftp是否仅对某些控制器/版本有效?我只能选择tftp或ftp。

– Peter Grace
13年9月18日在17:10

此方法适用于tftp,并且可以通过诸如Expect之类的方法自动化。这解决了我的问题!

– Peter Grace
2013年9月18日在17:23

SFTP在7.4:发行说明中引入

–some_guy_long_gone
2013年9月18日18:45在

#2 楼



下面是我放在一起的示例模板,已注释掉以供您使用。它将登录到WLC,获取正在运行的配置并将其附加到您选择的文件中。

示例文件名和位置为/var/log/script-log/config-log.txt

您需要将文件名和位置修改为您选择的文件(具有足够的权限)以及WLC的用户名,密码和IP地址。

最后,您可以编辑crontab来执行备份脚本

Crontab示例:

# Run configuration backup every night at midnight 0 0 * * * /path/to/script/script-name

配置备份脚本示例:

#!/usr/bin/expect

set timeout 15

set user "username-here"
set password "password-here"
set ipaddress1 "ip-address-here"


# Store the current date in 'date' and add header to log for appending separation

catch { exec sh -c { date } } date
set env(date) "$date"
exec sh -c {
             {
               echo -e "\n\n==================================================="
               echo -e "= WLC Configuration - $date"
               echo -e "===================================================\n\n"
             } >>/var/log/script-log/config-log.txt
}

# Log to the log.txt file and append to the log on subsequent runs (a)

set log [open "/var/log/script-log/config-log.txt" a]
set accum {}

# Expect diagnostic information with 1 | off = 0

exp_internal 0

# View stdout with 1 | off = 0

log_user 0

# Connect to physical WLC (ipaddr) with ssh

spawn ssh $ipaddress1
match_max 100000
sleep 1

match_max [expr 32 * 1024]
while 1  {
      expect {
        "no)?" {send "yes\r"}
        "n as:*" {send "$user\r"}
        "ser:*" {send "$user\r"}
        "assword:*" {send "$password\r"}
        "r) >"             {break}
        "denied"        {send_user "Can't login\r"; exit 1}
        "refused"       {send_user "Connection refused\r"; exit 2}
        "failed"        {send_user "Host exists. Check ssh_hosts file\r"; exit 3}
         timeout         {send_user "Timeout problem\r"; exit 4}
      }
    }

# send carriage return (\r) to make sure we get back to CLI prompt

send "\r"
sleep 1

# Remove scroll limit and show running configuration

send "config paging disable\r"
sleep 1
send "show run-config\r"
sleep 1
expect {
         "nue..." {send "\r"}
}
sleep 1
send "logout\r"
sleep 1
# Upon logging out you can either save any pending changes with y or simply use n to ignore them
send "y\r"
sleep 4

# Grab string that matched the greedy regexp

expect {
        -regexp {..*} {
            set accum "${accum}$expect_out(0,string)"
            exp_continue
        }
    }

puts $log $accum


评论


我希望使用Expect,但是run-config的输出不能超过legioxi的答案中提到的“传输上传”的原始配置。我最后要做的是使用Expect脚本以固定的时间间隔触发传输上传开始命令。

– Peter Grace
2013年9月18日在17:23

#3 楼

我知道这是一篇过时的文章,但是我发现从控制器自动执行备份的最佳方法是在cron运行的脚本中使用SNMP。

snmpset -v2c -c <snmp_RW> <WLC_IP> .1.3.6.1.4.1.14179.1.2.9.1.1.0 i 1
snmpset -v2c -c <snmp_RW> <WLC_IP> .1.3.6.1.4.1.14179.1.2.9.1.2.0 a TFTP_Server_IP
snmpset -v2c -c <snmp_RW> <WLC_IP> .1.3.6.1.4.1.14179.1.2.9.1.3.0 s /<TFTP_Path>
snmpset -v2c -c <snmp_RW> <WLC_IP> .1.3.6.1.4.1.14179.1.2.9.1.4.0 s <File_name>
snmpset -v2c -c <snmp_RW> <WLC_IP> .1.3.6.1.4.1.14179.1.2.9.1.5.0 i 2
snmpset -v2c -c <snmp_RW> <WLC_IP> .1.3.6.1.4.1.14179.1.2.9.1.6.0 i 1


显然替换<>中的项目以适合您的设置。希望某个地方的人可以找到帮助。

评论


好发现。 SNMP写功能总是被低估了!

– RedShift
14年8月16日在10:17

#4 楼

根据您拥有的设备数量,您可以破解Rancid使其与它们一起使用。然后,您可以使用版本控制系统进行设置,并拥有一个随时间推移具有差异的漂亮的Web gui。

如果设备数量不多,[Rancid的clogin部分]应该足够每天从crontab开始调用的脚本,

for device in wlc1 wlc2 wlc3 (..) wlcN; do
    clogin -c "show run; show clock" $device > ~/WLC-config-backups/$(date +%Y-%m-%d)-$device-backup.txt
done


这是基本的bash for循环,几乎可以无限扩展。

评论


“ show run”在W​​LC上不是有效命令,它是show running-config,甚至会停止并逐页提示您。它不会接受“ term len 0”-如果这是常规的IOS,我将使用与备份所有其他cisco设备相同的脚本。.:(

– Peter Grace
2013年9月16日19:59

禁用配置分页等效于IOS“项len 0”。祝您好运,尝试在滚动运行时中止show run-config。仍然有一个初始的“按Enter继续”。

–generalnetworkerror
2013年9月17日上午8:05

@generalnetworkerror,禁用FYI配置分页将telnet和ssh会话锁定到我们拥有的WLC4404

–迈克·彭宁顿
2013年9月17日20:36在

@MikePennington:在SSH会话中未锁定WLC 5508 v7.5.102.0的情况下测试了禁用分页功能。

–generalnetworkerror
2013年9月18日在7:51