这是我的高级设置。在路由器上:
R1(config)# username cisco password cisco
R1(config)# ip domain-name somedomain.com
R1(config)# crypto key generate rsa general-keys modulus 1024
R1(config)# aaa new-model
R1(config)# aaa authentication login cisco local
R1(config)# aaa authorization exec cisco local
R1(config)# ip scp server enable
R1(config)# line vty 0
R1(config)# login authentication cisco
R1(config)# snmp-server community cisco RW
为了使路由器充当SCP服务器,需要使用以上cmd启用。在ubuntu服务器上,我已经安装/正在运行openSSH并执行以下cmds:
snmpset -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.2.111 i 4
snmpset -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.3.111 i 4
snmpset -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.4.111 i 1
snmpset -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.5.111 a <svr ip addr>
snmpset -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.6.111 s cisco.txt
snmpset -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.7.111 s cisco
snmpset -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.8.111 s cisco
snmpset -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.14.111 i 1
然后检查状态是什么,我通过以下方式执行snmpget和/或snmpwalk :
snmpwalk -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.10.111
当我运行它时,我得到整数(2),这意味着它正在运行,然后它变为整数(4),这意味着它失败了。
然后检查失败的原因:
snmpwalk -c cisco -v 2c <router ip addr> 1.3.6.1.4.1.9.9.96.1.1.1.1.13.111
,我得到整数(2),表示“错误文件名”。
所以我尝试了上面“ .6.111字符串”的文件名的不同排列,包括不同的文件扩展名,带有或不带有连字符,与运行config cmds相同的文件名,甚至指定了绝对路径文件名,但没有似乎可以正常工作。上班吗?
#1 楼
我只是在CPE上尝试过此操作:[ytti@lintukoto ~]% cat moi2.sh
#!/bin/sh
snmp="snmpset -v2c -cfoo bu.ip.fi"
$snmp 1.3.6.1.4.1.9.9.96.1.1.1.1.2.9 i 4 \
1.3.6.1.4.1.9.9.96.1.1.1.1.3.9 i 4 \
1.3.6.1.4.1.9.9.96.1.1.1.1.4.9 i 1 \
1.3.6.1.4.1.9.9.96.1.1.1.1.5.9 a 91.198.120.2 \
1.3.6.1.4.1.9.9.96.1.1.1.1.6.9 s filename \
1.3.6.1.4.1.9.9.96.1.1.1.1.7.9 s username \
1.3.6.1.4.1.9.9.96.1.1.1.1.8.9 s password \
1.3.6.1.4.1.9.9.96.1.1.1.1.14.9 i 4
sleep 10
$snmp 1.3.6.1.4.1.9.9.96.1.1.1.1.14.9 i 6
[ytti@lintukoto ~]%
将配置(4)运行到网络(1)的副本,通过交换这些副本,您可以更改方向正在运行)。 @daniel还提到您的'14'或'rowstatus'是错误的,您使用1'active',而应该使用4'createAndGo'。
评论
刚刚通过将“ 14”更改为整数4再次尝试,仍然在数据包中出现错误,原因:值不一致。我什至像每次一样都用“ 6”清除了snmpset。顺便说一句,您能够使其与上面的设置一起使用吗?
–user1609
2013年6月10日21:25
是。以上在运行15.1(2)T5的881G上正常工作。我添加了脚本的输出。如果索引/ id(9)挂了,那么我会收到同样的“不一致的价值”投诉,那么很长一段时间您才能销毁它。您可以使用新鲜的索引/ ID进行测试以确保。
–ytti
13年6月10日在21:38
尝试了不同的索引/ ID,仍然没有发生。我将尝试其他设备。可能实际上不支持此特定设备。事实是,即使在cisco mib和软件矩阵中,它也表明我正在测试的当前IOS支持这些MIB。
–user1609
2013年6月10日21:47
到现在为止,它已经很老了,大概是5 <10年。所以可能不是。通过IOS CLI可以完成此工作:'copy running-config scp:// username:password @ server / filename'
–ytti
13年6月10日在21:50
是的,从路由器到服务器的手动scp复制工作正常。我什至可以创建一个kron调度程序或EEM脚本来执行此操作,并且从路由器到服务器的scp都可以正常工作。只是不通过snmp ...
–user1609
2013年6月11日5:12
#2 楼
根据Cisco SNMP Object Navigator,1.3.6.1.4.1.9.9.96.1.1.1.1.3不支持值4。取而代之的是,值2表示运行配置: >实际上似乎SNMP Object Navigator和MIB定义之间存在矛盾,因为
ccCopySourceFileType
和ccCopyDestFileType
的类型是ConfigFileType
,并且根据MIB定义:Object ccCopySourceFileType
OID 1.3.6.1.4.1.9.9.96.1.1.1.1.3
Type ConfigFileType
1:startupConfig
2:runningConfig
Permission read-create
这似乎得到了ytti的回答的支持
评论
是的,我也在mib中看到了这一点,但是即使将其更改为2的整数,我也会收到一条错误消息:*** snmpset -c
–user1609
13年6月10日在21:08
我认为矛盾可能是因为有两代复制mib。原始版本非常简单/笨拙,只执行了tftp,我不记得了,但是也许在那个时代1是启动,2正在运行。
–ytti
2013年6月10日21:41
那是个很好的观点。因此,似乎是通过代码升级进行了更改。
–user1609
13年6月10日在21:48
(出于多种原因)折旧了“ write-net” mib,而采用了“ config-copy” mib,这仍然是目前的做法。
–瑞奇
2013年6月11日18:57
#3 楼
我之前曾发布过此文章:http://checkforbees.com/router-backup/我认为您的问题出在多个snmpset上。您必须首先创建条目来执行此操作。 [14.xxx = 5(createAndWait)]然后,您可以根据需要设置条目,然后将rowStatus设置为“ 1”(活动)。
[注意:我的脚本已有数十年历史,因此它们重新调整为tftp。]
[root:pts/6{8}]debian1:/tmp/[01:32 AM]:./test.sh
CISCO-CONFIG-COPY-MIB::ccCopyProtocol.111 = INTEGER: scp(4)
CISCO-CONFIG-COPY-MIB::ccCopySourceFileType.111 = INTEGER: runningConfig(4)
CISCO-CONFIG-COPY-MIB::ccCopyDestFileType.111 = INTEGER: networkFile(1)
CISCO-CONFIG-COPY-MIB::ccCopyServerAddress.111 = IpAddress: 192.168.55.25
CISCO-CONFIG-COPY-MIB::ccCopyFileName.111 = STRING: cisco.txt
CISCO-CONFIG-COPY-MIB::ccCopyUserName.111 = STRING: cisco
CISCO-CONFIG-COPY-MIB::ccCopyUserPassword.111 = STRING: cisco
CISCO-CONFIG-COPY-MIB::ccCopyEntryRowStatus.111 = INTEGER: active(1)
..
Status: successful []
CISCO-CONFIG-COPY-MIB::ccCopyEntryRowStatus.111 = INTEGER: destroy(6)
[root:pts/6{8}]debian1:/tmp/[01:32 AM]:ls -l cisco.txt
-rw-r--r-- 1 root root 15790 Jun 12 01:32 cisco.txt
我正在循环运行... 10.111(状态)。我怀疑您从未删除过“ 111”条目。否则,这就是您使用Linux机器的ssh服务器对2960S进行
snmpset
的确切序列。 (如我的提示所示,是一个debian框。)评论
我按照您的建议尝试了,但还是没用:-(。我遇到了同样的失败和失败的原因。我想知道对于这个特定的IOS代码,是否一定是一些错误,然后才可以。12.2(33)SCF4
–user1609
2013年6月11日5:38
您正在使用什么设备?
–瑞奇
2013年6月11日18:56
在cisco ubr10k CMTS上进行了我的测试,也尝试了cisco 3725(12.4T代码),得到了相同的结果
–user1609
2013年6月12日下午5:01
badFilename也可能表示ssh登录失败,但是我得到了一个noConfig(5)。 (这与应该说的相反)
–瑞奇
2013年6月12日下午5:53
我从12.4T得到badFileName(2)。 (2960S为15.x)
–瑞奇
2013年6月12日下午6:01
#4 楼
检查此处:如何在使用SNMP的Cisco IOS路由器之间复制配置文件和从中复制配置文件将
ccCopyProtocol
更改为所需的传输方法:> ftp
rcp
sftp
这是一个bash脚本,用于自动执行配置备份。
评论
这是我用于文档编制的另外两个链接:tools.cisco.com/Support/SNMP/do/…和cisco.com/en/US/tech/tk648/tk362/…为了丢弃SCP服务器上的问题,如果您从路由器手动运行副本,它是否可以正常工作?我似乎记得一些TFTP服务器,它不允许我们在写入时创建新文件,因此首先我们必须在服务器端创建一个空文件,然后使用目标文件指向空文件名运行复制文件
是的,我也尝试通过scp从路由器到服务器手动进行此操作,效果很好。即使以前没有创建空文件,我也可以手动将文件复制到服务器。
有什么答案对您有帮助吗?如果是这样,您应该接受答案,这样问题就不会永远弹出来寻找答案。或者,您可以发布并接受自己的答案。