Guest User

Untitled

a guest
Jan 21st, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. #!/usr/bin/env ruby
  2. require 'optparse'
  3.  
  4. @compare = "free"
  5.  
  6. opts = OptionParser.new do |o|
  7. o.banner = "Usage: check_mem [options]"
  8.  
  9. o.on( "-w", "--warning WARNING", "Warning on less than n MB free" ) do |w|
  10. @warning = w.to_i
  11. end
  12.  
  13. o.on( "-c", "--critical CRITICAL", "Critical on less than n MB free" ) do |c|
  14. @critical = c.to_i
  15. end
  16.  
  17. o.on( "-p", "--plus", "Use free + buffers + cache for comparison" ) do |p|
  18. @compare = "maybe_free"
  19. end
  20.  
  21. o.on("-h", "--help", "This help" ) do
  22. puts o
  23. exit
  24. end
  25. end
  26.  
  27. begin
  28. opts.parse!( ARGV )
  29.  
  30. free_data=`free`.split("\n")[1].split
  31.  
  32. total=free_data[1].to_i
  33. used=free_data[2].to_i
  34.  
  35. shared=free_data[3].to_i
  36. buffers=free_data[4].to_i
  37. cached=free_data[5].to_i
  38.  
  39. free=total - used
  40. maybe_free=free + buffers + cached
  41.  
  42. if eval("#{@compare} < @critical")
  43. puts "CRITICAL Mem #{free} M free, #{maybe_free} M free (+buffers and cache)"
  44. exit 2
  45. elsif eval("#{@compare} < @warning")
  46. puts "CRITICAL Mem #{free} M free, #{maybe_free} M free (+buffers and cache)"
  47. exit 1
  48. else
  49. puts "OK Mem #{free} M free, #{maybe_free} M free (+buffers and cache)"
  50. exit 0
  51. end
  52. rescue => exc
  53. STDERR.puts "E: #{exc.message}"
  54. STDERR.puts opts.to_s
  55. exit 3
  56. end
Add Comment
Please, Sign In to add comment