最近のコンピュータにはCPUの省電力モードというのがあるので、東電の電力使用率が80%を超えると省電モードに入るプログラムを作ってみた。 CentOS5で動作は確認しています。
実行前に、
    modprobe cpufreq_powersave
Pythonスクリプトなので好きなようにご使用くださいませ。
ちなみに、東京電力電力供給状況APIを利用させて頂いています。 2.4あたりのPythonにはJSONのパーサがないので、手抜きしてます。 動かなくなったら教えてね。
#!/usr/bin/python
DEFAULT_GOVERNOR = "ondemand"
POWERSAVE_GOVERNOR = "powersave"
THRESHOLD = 80.0
import glob
import urllib
import os
from time import sleep
TEPCO_API = "http://tepco-usage-api.appspot.com/latest.json"
def to_int(line):
    value = line.split(':')[1].strip()
    if value[-1] == ',':
        value = value[:-1]
    return int(value)
def set_governor(dirs, governor):
    for d in dirs:
        open(os.path.join(d, "scaling_governor"), "w").write(governor + "\n")
def main():
    cpufreq_dirs = glob.glob("/sys/devices/system/cpu/*/cpufreq")
    while True:
        for line in urllib.urlopen(TEPCO_API):
            if not line: break
            line = line.strip()
            if '"usage"' in line:
                usage = to_int(line)
            if '"capacity"' in line:
                capacity = to_int(line)
        use_rate = 100.0 * usage / capacity
        if use_rate >= THRESHOLD:
            governor = POWERSAVE_GOVERNOR
        else:
            governor = DEFAULT_GOVERNOR
        print u"%d x 10000kw / %d x 10000kw: (%.1f%%): %s" % (usage, capacity, use_rate, governor)
        set_governor(cpufreq_dirs, governor)
        sleep(600)
if __name__ == '__main__':
    main()
会社で作っているメール誤送信防止のASPサービスをバージョンアップした。 (トランスウエア社プレスリリース) 苦労した甲斐もあって、今回の新機能は盛りだくさんだ。 メール保留、添付ファイル暗号化、添付ファイルwebダウンロード、宛先Bcc変換等の機能に加え、上司承認機能、自由定型文追加機能、添付ファイルパスワード保留機能、Cc/Bcc自動追加機能なども追加され、送信ゲートウェイとしてはかなりいい感じになっている。
興味のある企業の方はぜひ無料のトライアルユーザでも申し込んで頂きたい。
ちなみに、ソフトウェア版やアプライアンスもありますよ。
・-1' [2012/8/26 22:11:11] (by 1)
| ひらの | yo@hirano.cc |