退職のお知らせ - naoyaのはてなダイアリー
- 一つの時代を感じる。
Thinkpadをアップグレード
経緯
- 先々代のX21は2005年に購入。先代のX24は一年ちょっと前に購入。X24を買ったときの思惑は、先々代のX21より一回りハイスペックだし、ネットブックよりはよいかなという気分。しかし、使い始めたら予想外に使用頻度が高くなり、用途的にもやりたいことが増えてしまった結果、スペック不足が目立つようになってしまった。
- OSがWindows2000からWindowsXPに代わった点も大きい。やっぱり、この世代のPCでWindowsXPはきつい。あらためて、Windows2000ってよく出来てたよ。
- X24の問題点
- 当初はiPadを買おうと思っていたけど、iTunes必須と分かったので興味を失い、使い慣れたThinkpad Xシリーズで後継機種が欲しいと思っていたところに、程度のよい中古品を発見したので半ば衝動買い。やっぱり、枯れた技術って重要。ついでに7200rpmのHDDも購入。Windows7でもスペック的には問題ないはずなので、WindowsXPのサポート終了を見据えた頃にSSDと一緒に買い換えることになるだろう。
動作テスト
-
- memtest86+でメモリチェック
- DFTで内蔵HDDのチェック
- DFTで交換用HDDのチェック
TPM
- X24から取り外したHDDをUSB経由でマウントしたら、何故かマウントできない。最後の最後で壊れてしまったかと泣きそうになりつつX24に再マウントしたら、ちゃんと動作する。
- 何かと思ったら、紛失したと期待作に設定していたHDD Passwordによるロックが正常に機能していたというオチでした。図らずも効果が実証されてしまったので、新HDDでもちゃんと設定しましょう。暗号化と違って動作速度が遅くなるわけでもないので、コストパフォーマンス高いです。まあ、暗号化もするわけだけど。
OSインストール
coretemp/usbrh/rrdtool
KERNCONF
書式 このドライバをカーネルにコンパイルするためには、次の行を利用者のカーネル 設定ファイルに置きます: device coretemp もう一つの方法として、ブート時にモジュールとしてドライバをロードするため には、次の行を loader.conf(5) に置きます: coretemp_load="YES"
- dmesg | grep core
FreeBSD/SMP: 1 package(s) x 1 core(s) x 2 HTT threads FreeBSD/SMP: 1 package(s) x 1 core(s) x 2 HTT threads coretemp0: <CPU On-Die Thermal Sensors> on cpu0 coretemp1: <CPU On-Die Thermal Sensors> on cpu1
- sysctl -a | grep temp
- あれれ?dmesgで該当デバイスを認識しているのは間違いのだけど、何故か動作しないなあ。
- kldload coretemp
- あれれ?こちらだとちゃんと表示される。一体何なんだ?/boot/loader.confの記述はしてもしなくても同じだし、何かがおかしくなっているのかな。
- まあ、とりあえずは再起動したらこの呪文を唱えることにすればよいのだけど、安定稼働しだしたら再起動なんて一年単位でしないマシンなので、一年後にこのことを覚えていられるかどうかが最大の不安だ。
sysctl -a | grep temp hw.usb.template: 0 dev.cpu.0.temperature: 40.0C dev.cpu.1.temperature: 40.0C dev.coretemp.0.%desc: CPU On-Die Thermal Sensors dev.coretemp.0.%driver: coretemp dev.coretemp.0.%parent: cpu0 dev.coretemp.1.%desc: CPU On-Die Thermal Sensors dev.coretemp.1.%driver: coretemp dev.coretemp.1.%parent: cpu1
RRDTool
参考資料
rrdtool create
rrdtool create usbrh.rrd \ --start "08/01/2010 00:00" \ --step 300 \ DS:TEMPERATURE_CPU:GAUGE:600:U:100 \ DS:TEMPERATURE_HDD:GAUGE:600:U:100 \ DS:TEMPERATURE_ROOM:GAUGE:600:U:100 \ DS:HUMIDITY:GAUGE:600:U:100 \ RRA:AVERAGE:0.5:1:1200 \ RRA:AVERAGE:0.5:6:1400 \ RRA:AVERAGE:0.5:24:1550 \ RRA:AVERAGE:0.5:288:1594 \ RRA:MAX:0.5:1:1200 \ RRA:MAX:0.5:6:1400 \ RRA:MAX:0.5:24:1550 \ RRA:MAX:0.5:288:1594 \ RRA:MIN:0.5:1:1200 \ RRA:MIN:0.5:6:1400 \ RRA:MIN:0.5:24:1550 \ RRA:MIN:0.5:288:1594 \ RRA:LAST:0.5:1:1200 \ RRA:LAST:0.5:6:1400 \ RRA:LAST:0.5:24:1550 \ RRA:LAST:0.5:288:1594
rrdtool update
- 基本は、rrdtool update UNIXTIME:DS1:DS2:DS3:DS4の形にデータを持ってくればよい。DS1がCPU温度、DS2がHDD温度、DS3が室温、DS4が湿度。
- DS1はcoretemp + sysctlにて取得する。
sysctl -h dev.cpu.0.temperature | sed -e "s/dev.cpu.0.temperature: \(.*\)C/\1/g"
smartctl -A /dev/ad4 | grep "194 Temperature_Celsius" | sed -e "s/.\{87\}\(.*\) (Lifetime .*)/\1/g"
-
- DS3とDS4はusbrhにて取得する。
- zshの変態仕様のおかげで結構楽できました。
- 配列扱えるわ、小数扱えるわ、演算は分かりやすいわ、調べてみれば数学用のライブラリなんてものまで持ってるとか。
- 配列の第一要素へのアクセスが、[0]でなくて[1]なのは何かの思想なんだろうか。
- DS3とDS4はusbrhにて取得する。
RESULT=(`/usr/local/bin/usbrh -1 | sed -e "s/Temperature: \(.*\) C Humidity: \(.*\) %/\1 \2/g"`) TEMPERATURE_ROOM=${RESULT[1]} HUMIDITY=${RESULT[2]}
-
- 全部纏めるとこんな感じ。とりあえず、rrdtool updateまで。
#! /usr/local/bin/zsh (( TEMPERATURE_CPU = 0.0 )) (( TEMPERATURE_HDD = 0.0 )) (( TEMPERATURE_ROOM = 0.0 )) (( HUMIDITY = 0.0 )) TEMPERATURE_CPU=`sysctl -h dev.cpu.0.temperature | sed -e "s/dev.cpu.0.temperature: \(.*\)C/\1/g"` TEMPERATURE_HDD=`smartctl -A /dev/ad4 | grep "194 Temperature_Celsius" | sed -e "s/.\{87\}\(.*\) (Lifetime .*)/\1/g"` RESULT=(`/usr/local/bin/usbrh -1 | sed -e "s/Temperature: \(.*\) C Humidity: \(.*\) %/\1 \2/g"`) TEMPERATURE_ROOM=${RESULT[1]} HUMIDITY=${RESULT[2]} rrdtool update /home/cutxout/public_html/usbrh/usbrh.rrd N:$TEMPERATURE_CPU:$TEMPERATURE_HDD:$TEMPERATURE_ROOM:$HUMIDITY
rrdtool graph
- 暫定的にこんなデザインで動かしはじめました。色とグラフの組み合わせはいじってみると面白そうだ。今後の課題に。
- MRTGと同様にdaily, weekly, monthly, yearlyにする場合、--startのパラメータを調整するだけで残りは同じ。
--start=-173100 --start=-605100 --start=-3629100 --start=-31536000
rrdtool graph /home/cutxout/public_html/usbrh/usbrh-day.png \ --imgformat=PNG \ --start=-173100 \ --end=-300 \ --base=1000 \ --height=200 \ --width=600 \ --title="Temperature and Humidity (Daily)" \ --vertical-label="Celsius / Percent" \ DEF:a="/home/cutxout/public_html/usbrh/usbrh.rrd":TEMPERATURE_CPU:AVERAGE \ DEF:b="/home/cutxout/public_html/usbrh/usbrh.rrd":TEMPERATURE_HDD:AVERAGE \ DEF:c="/home/cutxout/public_html/usbrh/usbrh.rrd":TEMPERATURE_ROOM:AVERAGE \ DEF:d="/home/cutxout/public_html/usbrh/usbrh.rrd":HUMIDITY:AVERAGE \ AREA:a#00663B:"CPU Temperature" \ GPRINT:a:MAX:"MAX\:%5.2lf %S" \ GPRINT:a:MIN:"MIN\:%5.2lf %S" \ GPRINT:a:AVERAGE:"AVERAGE\:%5.2lf %S" \ GPRINT:a:LAST:"LAST\:%5.2lf %S\n" \ AREA:b#009959:"HDD Temperature" \ GPRINT:b:MAX:"MAX\:%5.2lf %S" \ GPRINT:b:MIN:"MIN\:%5.2lf %S" \ GPRINT:b:AVERAGE:"AVERAGE\:%5.2lf %S" \ GPRINT:b:LAST:"LAST\:%5.2lf %S\n" \ AREA:c#00CC77:"ROOM Temperature" \ GPRINT:c:MAX:"MAX\:%5.2lf %S" \ GPRINT:c:MIN:"MIN\:%5.2lf %S" \ GPRINT:c:AVERAGE:"AVERAGE\:%5.2lf %S" \ GPRINT:c:LAST:"LAST\:%5.2lf %S\n" \ LINE2:a#00663B: \ LINE2:b#009959: \ LINE2:c#00CC77: \ LINE1:d#C90929:"ROOM Humidity " \ GPRINT:d:MAX:"MAX\:%5.2lf %S" \ GPRINT:d:MIN:"MIN\:%5.2lf %S" \ GPRINT:d:AVERAGE:"AVERAGE\:%5.2lf %S" \ GPRINT:d:LAST:"LAST\:%5.2lf %S\n"
感想
- RRDToolは食わず嫌いの典型例だったようだ。一見複雑怪奇なコマンドラインアプリにありがちな反応だけど、マニュアルを片手にいじり倒してみると、複雑なのはその通りとしか言いようがないですわ。
- こういうグラフはExcelでは作れないので、簡単に作れるようにしておくと便利そうなきがする。手持ちのデータを使おうとしたときの最大の問題は、リポジトリにデータを収納するところなんだよな。
- はまりかけたのは、UNIXTIMEの扱い。Nが現在時刻を表すことと、-300のような表記が許されることに気づけなかったら、使うのを諦めていたと思う。
- zshも10年以上使ってきた割には、シェルスクリプトを組んだのは初めてだったりする。これを機に、ちょっとだけ勉強してみることにしましょう。
- 作者: 広瀬雄二,A5
- 出版社/メーカー: 技術評論社
- 発売日: 2009/06/17
- メディア: 単行本(ソフトカバー)
- 購入: 11人 クリック: 126回
- この商品を含むブログ (37件) を見る