Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## The Rakefile
- require 'RRDtool'
- require 'daemon_temperature'
- task :default => :test_update_temps
- desc "Test Update All Disk Temperatures"
- task(:test_update_temps) do
- now = Time.now
- rrds = Hash.new(nil)
- terms = [ 'hour', 'day', 'week', 'month', 'year' ]
- RRD_ROOT = File.join(File.dirname(__FILE__),'rrds')
- IMAGE_OUTPUT_ROOT = File.join(File.dirname(__FILE__),'images','{disk}-{period}')
- temps = DaemonTemperature.new("localhost",7634)
- disks = temps.disks
- disks.each do |d|
- rrds[d] = RRDtool.new File.join(RRD_ROOT,d+'.rrd')
- end
- rrds.each do |name,rrd|
- next unless File.exists?("/dev/#{name}")
- unless File.exists?(rrd.rrdname)
- rrd.create(300, now.to_i - 1,[
- "DS:temp:GAUGE:600:0:100",
- "RRA:AVERAGE:0.5:1:24",
- "RRA:AVERAGE:0.5:1:576",
- "RRA:AVERAGE:0.5:6:672",
- "RRA:AVERAGE:0.5:24:732",
- "RRA:AVERAGE:0.5:144:1460"])
- end
- temperature = temps.temp(name)
- rrd.update("temp",[ "N:#{temperature}"])
- terms.each do |term|
- image = IMAGE_OUTPUT_ROOT.gsub('{disk}',name).gsub('{period}',term) + ".png"
- RRDtool.graph([image,
- "--lazy",
- "-A",
- "-s -1#{term}",
- "-t hdd temperature :: #{name} (/dev/#{name}; over 1 #{term})",
- "-h", "80", "-w", "600",
- "-a", "PNG",
- "-v degrees C",
- "DEF:temp=#{rrd.rrdname}:temp:AVERAGE",
- "LINE2:temp#0000FF:#{name} (/dev/#{name})",
- "GPRINT:temp:MIN: Min\\: %2.lf",
- "GPRINT:temp:MAX: Max\\: %2.lf",
- "GPRINT:temp:AVERAGE: Avg\\: %4.1lf",
- "GPRINT:temp:LAST: Current\\: %2.lf degrees C\\n"
- ])
- end
- end
- terms.each do |term|
- image = IMAGE_OUTPUT_ROOT.gsub('{disk}','all').gsub('{period}',term) + ".png"
- opts = [image,
- "--lazy",
- "-A",
- "-s -1#{term}",
- "-t hdd temperature :: all",
- "-h", "80", "-w", "600",
- "-a", "PNG",
- "-v degrees C"]
- rrds.each do |disk,rrd|
- opts << "DEF:#{disk}=#{rrd.rrdname}:temp:AVERAGE"
- end
- opts << [ "LINE2:hde#0000FF:hde (/dev/hde)",
- "LINE2:hdg#FF0000:hdg (/dev/hdg)",
- "LINE2:hdi#00FF00:hdi (/dev/hdi)",
- "LINE2:hdk#000000:hdk (/dev/hdk)",
- "LINE2:hdm#FF00FF:hdm (/dev/hdm)",
- "LINE2:hdo#00FFFF:hdo (/dev/hdo)",
- "LINE2:hdq#0FF00F:hdq (/dev/hdq)",
- "LINE2:hds#F0F0F0:hds (/dev/hds)"
- ]
- opts -= [ "LINE2:hdi#00FF00:hdi (/dev/hdi)" ]
- opts.flatten!
- RRDtool.graph(opts)
- end
- end
Add Comment
Please, Sign In to add comment