Ruby on Rails SNMP gem - 设备无响应



我在Rails应用程序中使用SNMP gem来控制思科交换机。 Gem 的"获取"功能有效,我可以从设备中检索值,但"设置"功能效果不佳......

在命令行中,SNMP 命令可以正常工作:

bash-4.1# snmpset -v2c -c private-string 192.168.3.1 .1.3.6.1.2.1.2.2.1.7.11 i 2
IF-MIB::ifAdminStatus.11 = INTEGER: down(2)
bash-4.1# 

但是当我尝试使用 Gem 设置相同的 OID 时,我得到"192.168.3.1 没有响应"在实际应用程序和 IRB 中:

bash-4.1# irb
2.0.0-p0 :001 > require 'snmp'
 => true 
2.0.0-p0 :002 > include SNMP
 => Object 
2.0.0-p0 :003 > SNMP::Manager.open(:host => "192.168.3.1", :community => "private-string") do |manager|
2.0.0-p0 :004 >     varbind = VarBind.new("1.3.6.1.2.1.2.2.1.7.11", "2")
2.0.0-p0 :005?>   manager.set(varbind)
2.0.0-p0 :006?>   end
    SNMP::RequestTimeout: host 192.168.3.1 not responding
        from /usr/local/rvm/gems/ruby-2.0.0-p0/gems/snmp-1.1.1/lib/snmp/manager.rb:293:in `set'
        from (irb):5:in `block in irb_binding'
        from /usr/local/rvm/gems/ruby-2.0.0-p0/gems/snmp-1.1.1/lib/snmp/manager.rb:205:in `open'
        from (irb):3
        from /usr/local/rvm/rubies/ruby-2.0.0-p0/bin/irb:16:in `<main>'
2.0.0-p0 :007 > exit

我可以在同一台机器上从命令行运行 snmpset,它工作正常,但不使用 gem。

尝试varbind = VarBind.new("1.3.6.1.2.1.2.2.1.7.11", SNMP::Integer.new(2)),以便varbind类型是正确的。

最新更新