MacBookAirのバッテリー容量を黙々と記録するスクリプトを作った

バッテリーがどういう減り方してるのかが気になるわけですよ.

重い処理させずにディスプレイの輝度も低めにしとけば結構持つのはわかったんだけど.

と,いうわけでバッテリーの状態を黙々とcsvファイルに記録するためのRubyスクリプトを書いた.

参考にしたのはこちら.

mac bookのバッテリー状態をはてなグラフに記録してみよう – mac 日記

http://d.hatena.ne.jp/yao3/20091207/1260204647

#!/usr/bin/ruby
class BatteryLog
def run
logging
end
def logging
info = get_status
_logging(Time.new,info)
end
def _logging(time, info)
begin
##### ログを保存するディレクトリをフルパスで.
Dir::chdir("/Users/tokyoster/Documents/ruby/BatteryLogs")
rescue
Dir::mkdir("/Users/tokyoster/Documents/ruby/BatteryLogs")
Dir::chDir
end
##### Capacity,Current,Cycle Count
log_str = time.strftime("%y/%m/%d %H:%M") + "," + info["Capacity"].to_s + "," + info["Current"].to_s + "," + info["Cycle Count"].to_s
log_file_name = "BatteryLog" + time.strftime("%y%m%d") + ".csv"
log_file = File.open(log_file_name,"a+")
log_file.puts(log_str)
log_file.close
end
def get_status
info = eval(`/usr/sbin/ioreg -w0 -n "AppleSmartBattery" | grep LegacyBatteryInfo`.gsub(/=/, '=>').gsub(/^.*\{/, '{'))
return info
end
end
BatteryLog.new.run

こいつをCronに登録するときには

crontab -e

* * * * * ruby /Users/tokyoster/Documents/ruby/battery_log.rb

てな感じですね.

これで一分ごとにバッテリー容量とバッテリー残量とサイクルカウント(何回充電サイクルが繰り返されたか)が記録されるようになりました.

あとはこれを黙々とグラフ化して表示してくれるガジェットみたいのがあったらいいですよねー,