Sha256: 6fd20074e3704d56b88d33ec63a045f2764de89da1fd6f446c0550f8f228c4b7
Contents?: true
Size: 747 Bytes
Versions: 9
Compression:
Stored size: 747 Bytes
Contents
#!/usr/bin/env ruby require 'json' config = ARGV[0] ? JSON::parse(ARGV[0]) : {} $stdout.sync = true def GB b; (b.to_f / 1024**2).round(6); end # GB significant down to 4kB while(true) do info = File.readlines('/proc/meminfo').map {|l| l = l.chomp.split(/:\s+/, 2) raise "units assumption failed" if l[1].sub!(/\s+(kB)$/, '') and not($+ == 'kB') l } i = Hash[*info.flatten] out = { total: GB(i['MemTotal']), free: GB(i['MemFree']), buffers: GB(i['Buffers']), cached: GB(i['Cached']), swapped: GB(i['SwapTotal'].to_i - i['SwapFree'].to_i), swap_free: GB(i['SwapFree']), } puts JSON::generate(out) break unless config.include?('interval') sleep config['interval'] end
Version data entries
9 entries across 9 versions & 1 rubygems