bbhoss (owner)

Revisions

gist: 216612 Download_button fork
public
Public Clone URL: git://gist.github.com/216612.git
Embed All Files: show embed
Ruby #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
require 'bigdecimal'
#Set values to determine output based on how much % of memory is free
CRITICAL=5
WARNING=10
File.open "/proc/meminfo","r" do |line|
  @memtotal = BigDecimal.new($1) if line.gets =~ /MemTotal:\s+(\d+)\s+kB/
  @memfree = BigDecimal.new($1) if line.gets =~ /MemFree:\s+(\d+)\s+kB/
end
if @memtotal and @memfree
  @free_percentage = ((@memfree/@memtotal)*100)
  case @free_percentage.to_i
  when 0..CRITICAL
    print "CRITICAL - Only #{@free_percentage.to_i}% free memory!"
    exit 2
  when CRITICAL..WARNING
    print "WARNING - Only #{@free_percentage.to_i}% free memory!"
    exit 1
  else
    print "OK - #{@free_percentage.to_i}% free memory"
    exit 0
  end
else
  print "UNKNOWN - Cannot get free memory!!!"
  exit 3
end