Category Archives: Code

Ruby snmp library示例:获得网络设备运行时间

利用ruby snmp library取网络设备的运行时间。

require ’snmp’

unless ARGV[0]
    puts "Please supply the hostname or ip address"
exit
end

data = Array.new

SNMP::Manager.open(:Host => ARGV[0], :Version => :SNMPv1, :Community => ‘public’) do |manager|
    response = manager.get(["sysName.0", "sysUpTime.0"])
    response.each_varbind do |vb|
&nbsp

SNMP的Ruby实现

SNMP Library for Ruby 是一个SNMP的纯Ruby实现,也是到目前为止唯一的一个。Dave Halliday 在2004-6-21开始并独立实施了这个项目。他在Rubyforge 发布了第一个release:0.2.0,最新的版本是1.0.1,去年5.4发布。

不幸的是,这个项目现在处于停滞状态。我前几天向作者请求SNMP v3的支持,Dave在邮件里说他没有时间可以花在这个项目上,而且也没有任何计划开发对SNMPv3的支持。

尽管如此,目前的版本对SNMP v1/v2c都支持的很好,与NET-SNMP相比更加简单易用,一方面是因为其api的设计丰富、直接,另一方面Ruby的确比Perl要友好多了;功 能上的优异并没有影响到ruby snmplib的可靠稳定,

Telnet登录Cisco设备的Ruby脚本

关键在于发起telnet对话时,添加一个短暂的waittime。

localhost = Net::Telnet::new("Host" => "192.168.0.1"
          

Ruby: 练练iterator+method

给自己出个弱智题目,练练iterator和自定义method:打印出[1, 2, 3, ..., 100]中可被2整除的数字。

def mod2?(number)

number % 2 == 0

end

a = (1..100).to_a; a2 = []

a2 = a.each do |number|

if mod2?(number)

a2 << number

end

Ruby: ‘?’在方法中的用途

虽然不喜欢在变量名、方法名里出现非字母、非数字的字符,比如@, @@, ?,(貌似是我的洁癖),但是我得承认’?'在ruby里的功用非常有趣和实用。

比如要写一个简单的方法,判断一个整数是否可被2整除。

def mod2?(number)

number % 2 == 0

end

方法mod2?()会返回一个布尔对象,true or false,可以被方便的利用。

Ruby: 创建array小贴士

要创建一个array,形如:[1, 2, 3, 4, ........, 100]。

我的第一反映:

i = 1; a = []

while i <= 100

a << i; i = i + 1

end

puts a

 从Ruby Cookbook上看到的办法,充分看出我的愚蠢和ruby的妙处:

 a = (1..100).to_a           &

One-Clink Ruby Installer发布了1.8.5-21版本

August 29, 2006, One-Clink Ruby Installer发布了1.8.5-21版本。更新日志如下:http://rubyforge.org/frs/shownotes.php?release_id=6672

Collection of “99 bottles of beer” & “Hello, world!”


初学Ruby的时候,看的是Chris Pine的Learn to Program,其中有一章讲到looping,Chris出了一道题,要求打印"99 Bottles of Beer on the Wall"这首歌的歌词。

我猜想这大概是老外们耳熟能详的儿歌,否则Chris不会如此随意地出这么一道练习并且不附录歌词,没想到中西方文化差异在学编程的时候也能碰到,倒也是趣事。

google了一下,竟然找到这么一个网页99 Bottles of Beer

One-Clink Ruby installer 1.8.4-19 Final版本

2006年7月8号,One-Clink Ruby Installer发布了1.8.4-19 Final版本。下载地址:http://rubyforge.org/projects/rubyinstaller/

99 bottles of beer on the wall

学习编程的经典例子