I am new to ruby but am working hard to learn all i can. Is there a
way to get system information from ruby on windows? I am looking to
get some data to make a system monitor type of thing. Data like conky
or samurize have. Just not as crazy, just things like total memory and
used memory, hard drive space and network usage, stuff like that.
Thanks for the help!
-Nick
Nick Hird wrote:
I am new to ruby but am working hard to learn all i can. Is there a
way to get system information from ruby on windows? I am looking to
get some data to make a system monitor type of thing. Data like conky
or samurize have. Just not as crazy, just things like total memory and
used memory, hard drive space and network usage, stuff like that.
Thanks for the help!
-Nick
The sysutils project has some things you'll want:
http://www.rubyforge.org/projects/sysutils
Regards,
Dan
Nick Hird wrote:
I am new to ruby but am working hard to learn all i can. Is there a
way to get system information from ruby on windows? I am looking to
get some data to make a system monitor type of thing. Data like conky
or samurize have. Just not as crazy, just things like total memory and
used memory, hard drive space and network usage, stuff like that.
Thanks for the help!
-Nick
For a windows-only solution I'd recommend ruby-wmi (gem install
rdp-ruby-wmi if you are using ruby 1.9, don't know why ).
You can get to WMI via win32ole, like this:
require 'win32ole'
wmi_classes = %w(Win32_BIOS Win32_BootConfiguration Win32_ComputerSystem
Win32_LogicalDisk)
computername = '.'
wmi = WIN32OLE.connect("winmgmts://#{computername}/root/cimv2")
wmi_classes.each do |wmi_class|
puts wmi_class
wmi_objects = wmi.ExecQuery("select * from #{wmi_class}")
wmi_objects.each do |wmi_obj|
wmi_obj.properties_.each do |prop|
puts "#{prop.name}\t#{prop.value}" if prop.value
end
end
puts "_"*60
end
ruby_wmi is cleaner, it handles the connection and the querying syntax.
require 'ruby-wmi'
c_drive = WMI::Win32_PerfRawData_PerfDisk_LogicalDisk.find :first,
:conditions => {'Name' => 'C:'}
puts 'C percent free:',
c_drive.PercentFreeSpace.to_f*100/c_drive.PercentFreeSpace_Base
hth,
Siep
Attachments:
http://www.ruby-forum.com/attachment/4539/wmi.rb
ยทยทยท
--
Posted via http://www.ruby-forum.com/\.