我正在寻找一种通过自动过程备份控制器配置文件的方法。我已经看到了指向Web界面的链接,该链接似乎在一次将配置的tftp复制到远程主机上,但是我正在寻找一种安排复制的方法。
有谁知道一种自动为Cisco WLC配置备份的方法?
我正在寻找一种通过自动过程备份控制器配置文件的方法。我已经看到了指向Web界面的链接,该链接似乎在一次将配置的tftp复制到远程主机上,但是我正在寻找一种安排复制的方法。
有谁知道一种自动为Cisco WLC配置备份的方法?
Answers:
使用脚本登录到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上运行。
期望可能是考虑这份工作的好人选。
以下是我整理的示例模板,已注释掉以供您使用。它将登录到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
我知道这是一篇过时的文章,但是我能发现从控制器自动执行备份的最佳方法是在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
显然替换<>中的项目以适合您的设置。希望某个地方的人可以找到帮助。
根据您拥有的设备数量,您可以破解Rancid使其与它们一起使用。然后,您可以使用版本控制系统进行设置,并拥有一个随时间推移具有差异的不错的Web gui。
如果您没有太多设备,则clogin
在crontab
每天每天调用的脚本中,[ Rancid]的部分就足够了
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循环,几乎可以无限扩展。
config paging disabled
等效于IOS“项len 0”。幸运的是show run-config
,它一经推出就尝试中止。仍然有一个初始的“按Enter继续”。