1

私は、標準的な間隔でシステムをテストするサーバー モニターの作成を任されており、一定のレベルを超えている場合、プログラムはユーザーに電子メールを送信します。電子メールを送信するだけでなく、60 秒ごとの負荷平均を示すファイルも作成します。ループを毎回新しい行に書き込むことができないようです。最初の行を何度も上書きし続けるだけです。私は何が欠けていますか?

require 'fileutils'

def LoadAvg()
  return `cat /proc/loadavg | awk '{print $1" "$2" "$3}'`
end

def Timer()
  servername = `uname -n`.strip
  t = Time.now
  taber = t.strftime("%m-%d-%Y-%T")
  filename = "#{servername}_Systemcheck_#{taber}.txt"
  FileUtils.touch(filename)

while(true)
  File.open(filename, 'w') { |x|
    x.puts "#{t.strftime("%I:%M:%S %p")} - #{LoadAvg()}"
    puts LoadAvg()
    sleep(60)
  }
 end
end

Timer()
4

1 に答える 1

3

ファイルに APPEND する場合は、a代わりにw.

無関係:Monit、God、またはBluepillを使用してください!

于 2012-08-31T18:06:21.550 に答える