创建博客 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

星期五

明天不上班

 
 
 
 
 

日志

 
 
关于我

一个特立独行的Java程序员,比较宅,上上网,写博客,听音乐,看电影。

LOFTER精选

Ruby and WMI  

2012-01-08 01:21:59|  分类: Ruby |  标签: |举报 |字号 订阅

什么是WMI  http://baike.baidu.com/view/442461.htm
一般我们对Windows机器进行监控,使用的就是WMI
如何使用 WMI
http://msdn.microsoft.com/en-us/library/windows/desktop/aa393964%28v=vs.85%29.aspx#providing_data_to_wmi
使用PowerShell 调用WMI
http://technet.microsoft.com/en-us/library/dd315295.aspx
一个简单的例子
get-wmiobject Win32_PhysucalMemory

这里我们来使用Ruby 调用WMI 监控本地机器

首先安装 gem install rdp-ruby-wmi
http://rubygems.org/gems/rdp-ruby-wmi

使用ri WMI::Base.find 查询其用法

require 'rubygems'
require 'ruby-wmi'

procs = WMI::Win32_Process.find(:all)
#procs.each_with_index{|value| puts value.Name}

cpu = WMI::Win32_Processor.find(:first)
puts "CPU Name: " + cpu.Name
puts "CPU Cores: " + cpu.NumberOfCores.to_s
puts "CPU Hz: " + cpu.MaxClockSpeed.to_s + "Hz"
puts "CPU Usage: " + cpu.LoadPercentage.to_s + "%"

mem = WMI::Win32_PerfRawData_PerfOS_Memory.find(:first)
puts "Available Memory: " + mem.AvailableMBytes + "M"

physicalMemory = WMI::Win32_PhysicalMemory.find(:all)

totalMem = 0

physicalMemory.each do |m|
totalMem += (m.Capacity.to_i/(1024*1024))
end

puts "Total Memory: " + totalMem.to_s + "M"

disks = WMI::Win32_Logicaldisk.find(:all)
disks.each do |disk|
puts "DeviceID: " + disk.DeviceID
puts "DriveType: " + disk.DriveType.to_s
puts "FreeSpace: " + (disk.FreeSpace.to_i/(1024*1024*1024)).to_s + "G"
puts "Size: " + (disk.Size.to_i/(1024*1024*1024)).to_s + "G"
end


Ruby and WMI - 星期五 - 星期五
  评论这张
 
阅读(409)| 评论(0)
推荐

历史上的今天

最近读者

热度

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2014