■負荷グラフを表示する

■書式

fh = open("| uptime")

■説明

負荷(ロードアベレージ)をグラフで表示するにはuptimeコマンドからの戻り値を解析して、その値を<img>タグのheightの値に指定します。定期的にグラフにするために負荷の値をファイルに書き出します。このファイル内容の末尾から一定数tailで値を取り出すことで最新の負荷状況を引き出す事ができます。一定時間ごと負荷の値を取得するためにはcrontab -eとして
*/1 * * * * 実行ファイルのパス
のように記述します。*/1で1分ごとに、このプログラムが処理されHTMLファイルが生成されます。このサンプルではresult.htmlというHTMLファイルを出力します。また、ファイルの保存先のパスは先頭のfilepathで指定しておきます。

■サンプル

#!/usr/bin/ruby
filepath = "/Ruby/sample/001/"
fh = open("| uptime")
result = fh.gets
fh.close

str = result.split(/ /)
n = (str[12].to_f*100).to_i
fh = open("#{filepath}data.txt","a")
fh.print n,"\n"
fh.close

fh = open("| tail -10 #{filepath}data.txt")
fw = open("#{filepath}result.html","w")

fw.print "<html><head><title>Load Average Graph</title></head><body>"

while !fh.eof
fw.print "<img src='dot.gif' width='1' height='#{fh.gets.chomp}'>"
end

fw.print "</body></html>"

fw.close
fh.close