Guest User

Untitled

a guest
Feb 21st, 2018
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.59 KB | None | 0 0
  1. ## The Rakefile
  2. require 'RRDtool'
  3. require 'daemon_temperature'
  4. task :default => :test_update_temps
  5. desc "Test Update All Disk Temperatures"
  6. task(:test_update_temps) do
  7. now = Time.now
  8. rrds = Hash.new(nil)
  9. terms = [ 'hour', 'day', 'week', 'month', 'year' ]
  10. RRD_ROOT = File.join(File.dirname(__FILE__),'rrds')
  11. IMAGE_OUTPUT_ROOT = File.join(File.dirname(__FILE__),'images','{disk}-{period}')
  12. temps = DaemonTemperature.new("localhost",7634)
  13. disks = temps.disks
  14. disks.each do |d|
  15. rrds[d] = RRDtool.new File.join(RRD_ROOT,d+'.rrd')
  16. end
  17.  
  18. rrds.each do |name,rrd|
  19. next unless File.exists?("/dev/#{name}")
  20. unless File.exists?(rrd.rrdname)
  21. rrd.create(300, now.to_i - 1,[
  22. "DS:temp:GAUGE:600:0:100",
  23. "RRA:AVERAGE:0.5:1:24",
  24. "RRA:AVERAGE:0.5:1:576",
  25. "RRA:AVERAGE:0.5:6:672",
  26. "RRA:AVERAGE:0.5:24:732",
  27. "RRA:AVERAGE:0.5:144:1460"])
  28. end
  29. temperature = temps.temp(name)
  30. rrd.update("temp",[ "N:#{temperature}"])
  31. terms.each do |term|
  32. image = IMAGE_OUTPUT_ROOT.gsub('{disk}',name).gsub('{period}',term) + ".png"
  33. RRDtool.graph([image,
  34. "--lazy",
  35. "-A",
  36. "-s -1#{term}",
  37. "-t hdd temperature :: #{name} (/dev/#{name}; over 1 #{term})",
  38. "-h", "80", "-w", "600",
  39. "-a", "PNG",
  40. "-v degrees C",
  41. "DEF:temp=#{rrd.rrdname}:temp:AVERAGE",
  42. "LINE2:temp#0000FF:#{name} (/dev/#{name})",
  43. "GPRINT:temp:MIN: Min\\: %2.lf",
  44. "GPRINT:temp:MAX: Max\\: %2.lf",
  45. "GPRINT:temp:AVERAGE: Avg\\: %4.1lf",
  46. "GPRINT:temp:LAST: Current\\: %2.lf degrees C\\n"
  47. ])
  48. end
  49. end
  50. terms.each do |term|
  51. image = IMAGE_OUTPUT_ROOT.gsub('{disk}','all').gsub('{period}',term) + ".png"
  52. opts = [image,
  53. "--lazy",
  54. "-A",
  55. "-s -1#{term}",
  56. "-t hdd temperature :: all",
  57. "-h", "80", "-w", "600",
  58. "-a", "PNG",
  59. "-v degrees C"]
  60. rrds.each do |disk,rrd|
  61. opts << "DEF:#{disk}=#{rrd.rrdname}:temp:AVERAGE"
  62. end
  63. opts << [ "LINE2:hde#0000FF:hde (/dev/hde)",
  64. "LINE2:hdg#FF0000:hdg (/dev/hdg)",
  65. "LINE2:hdi#00FF00:hdi (/dev/hdi)",
  66. "LINE2:hdk#000000:hdk (/dev/hdk)",
  67. "LINE2:hdm#FF00FF:hdm (/dev/hdm)",
  68. "LINE2:hdo#00FFFF:hdo (/dev/hdo)",
  69. "LINE2:hdq#0FF00F:hdq (/dev/hdq)",
  70. "LINE2:hds#F0F0F0:hds (/dev/hds)"
  71. ]
  72. opts -= [ "LINE2:hdi#00FF00:hdi (/dev/hdi)" ]
  73. opts.flatten!
  74. RRDtool.graph(opts)
  75. end
  76. end
Add Comment
Please, Sign In to add comment