Class: Jkr::SysInfo

Inherits:
Object
  • Object
show all
Defined in:
lib/jkr/sysinfo.rb

Class Method Summary collapse

Class Method Details

.gatherObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/jkr/sysinfo.rb', line 5

def gather
  ret = Hash.new
  ret[:proc] = Hash.new

  # gather infomation under /proc
  ret[:proc][:cpuinfo] = `cat /proc/cpuinfo`
  ret[:proc][:meminfo] = `cat /proc/meminfo`
  ret[:proc][:interrupts] = `cat /proc/interrupts`
  ret[:proc][:mdstat] = `cat /proc/mdstat`
  ret[:proc][:mounts] = `cat /proc/mounts`

  ret[:sys] = Hash.new
  ret[:sys][:block] = Hash.new
  Dir.glob("/sys/block/*").each do |block_path|
    block = File.basename(block_path).to_sym
    ret[:sys][:block][block] = Hash.new
    ret[:sys][:block][block][:queue] = Hash.new
    Dir.glob("#{block_path}/queue/scheduler") do |path|
      ret[:sys][:block][block][:queue][:scheduler] = `cat #{path}`
    end
    Dir.glob("#{block_path}/queue/nr_requests") do |path|
      ret[:sys][:block][block][:queue][:nr_requests] = `cat #{path}`
    end
  end

  ret
end