取得した温度をCactiで表示させる
まぁ別段特別な事はしないんですけどね、あんまり資料も無かったので書いておきます。
Data Input Methods
- Name : 今後使うMethod名。好きなもので。
- Input Type : Script/Command
- Input String : cat /hogehoge/temper.tmp
そしてOutput FieldsへAddし、CelsiusとFahrenheitを作成。
- Celsius
- Field [Output] : Celsius
- Friendly Name : TEMP(C)
- Update RRD File : true
- Fahrenheit
- Field [Output] : Fahrenheit
- Friendly Name : TEMP(F)
- Update RRD File : true
Graph Templates
Graph TemplatesへAddし、"Item #1"〜"Item #5"を作成。
- Item #1
- Data Source : [Data Input Methods]で作成したMethod
- Color : 00BF47
- Opacity/Alpha Channel : 100%
- Graph Item Type : LINE2
- Consolidation Function : AVERAGE
- CDEF Function : None
- Value :
- GPRINT Type : Normal
- Text Format : main
- Insert Hard Return : faulse
- Item #2
- Data Source : #1と同じ
- Color : None
- Graph Item Type : GPRINT
- Consolidation Function : MAX
- CDEF Function : None
- Value :
- GPRINT Type : Exact Number
- Text Format : Max :
- Insert Hard Return : faulse
- Item #3
- Data Source : #1と同じ
- Color : None
- Graph Item Type : GPRINT
- Consolidation Function : LAST
- CDEF Function : None
- Value :
- GPRINT Type : Exact Number
- Text Format : Current:
- Insert Hard Return : faulse
- Item #4
- Data Source : #1と同じ
- Color : None
- Graph Item Type : GPRINT
- Consolidation Function : MIN
- CDEF Function : None
- Value :
- GPRINT Type : Exact Number
- Text Format : Min:
- Insert Hard Return : faulse
- Item #5
- Data Source : #1と同じ
- Color : None
- Graph Item Type : GPRINT
- Consolidation Function : AVERAGE
- CDEF Function : None
- Value :
- GPRINT Type : Exact Number
- Text Format : Average:
- Insert Hard Return : true
Devices
Devicesにある該当ホストを選択、Create Graphs for this Hostをクリック
Createから作成したテンプレートを選択し、一番下の[Create]をクリックすればグラフができる…はずです。
cronの設定
当然ですが、cronのスケジュールにtemper.txtを更新させる事をお忘れなく。
*/5 * * * * root /hogehoge/temper
別にStandaloneで動かし続けても良いんですが、イチイチinit.dに書かないといけないのでキャンセルですヽ(´ー`)ノ
Linuxで温度測定 その3
いつの間にかレスが出てたので…
レスありがとうございました。 遅くなりましたが報告となります。
http://www.relavak.com/downloads/temper-1.0.tgz
をDLし展開。 binaryはありますが、一度消してmakeしなおしたほうが良いでしょう。
ただし、初期状態では10秒ごとに自動更新するstandalone形式のため、色々不便です。 というわけで、temper.cの最後のほうを変更しました。
白文字は削除、赤文字が追加分です。(ファイル出力部については、toto氏にご教授いただきました。thx!)
for(;;) {
float tempc;if(TemperGetTemperatureInC(t, &tempc) < 0) {
perror("TemperGetTemperatureInC");
exit(1);
}
printf("temperature %.2fF %.2fC\n", (9.0 / 5.0 * tempc + 32.0),tempc);FILE *outputfile;sleep(10);
outputfile = fopen("/hogehoge/temper.tmp", "w");
fprintf (outputfile, "Fahrenheit:%.2f Celsius:%.2f", (9.0 / 5.0 * tempc + 32.0),tempc);
fclose (outputfile);
}
return 0;
変更が終わったらバイナリを一旦待避してから(su権限で)make実行。
これで実行する度に/hogehoge/temper.tmpが更新されるので、Cactiで読み込んであげればグラフの完成となります。
以下、おまけ。
Linuxで温度測定 その2
Linuxで楽にイケるっぽいもの
- TEMPer232 製造元/現物の写真
- まず、製造元にLinux用のDriverがあります。中身があからさまにch341用ですが、ファイルが少なすぎて不安になれます
- 多分一番便利と思われる"Temper-Tools"は、他所で紹介もされてて良さげなようです。
ヒューマンインターフェースデバイス (Human Interface Device)で認識するっぽいもの
- TEMPer(無印) 製造元/現物の写真(1) (2)
- 今回買ったもの。→(売り場)
- 付属のCD-Rに入ってたWin用アプリのアイコンちなみにV10.1
- WindowsXPに繋げてPortmonで見てもシリアルで認識せず、Ubuntuに上記Temper-Tools放り込んでも、該当箇所に登録されず。 3時間掛けたけどこれ以上の確認は技術的に無理と判断した
- (11/8追記) http://gazoo.com/G-BLOG/BlogTaikenshitemimas/166441/Article.aspxでは"無印"がch341との事ですが、ついていたアプリが8.5という所が気になる。もしかしたら、生産中に内部設計が変更されているのかもしれない…さすが中華
- TEMPerNTC 製造元/現物の写真/Akiba PC Hotline!/三月兎
- 結局、最初に見つけた三月兎のやつはミスチョイスだったというオチ
- 製造元にあるキャプチャ画像の左上に「HID」の文字があるので多分アウト
- TEMPerHum 製造元/現物の写真(1) (2)
- http://gazoo.com/G-BLOG/BlogTaikenshitemimas/163006/Article.aspxでは無印と紹介されてますが、
実際は"TEMPerHUM"のようです。売り場の写真参照)やっぱり無印だったらしいです。 写真が間違ってるとか…さすが中華 - また、sourceforgeにWindows用アプリがあるようです。
多分232と同一製品。"Hum"の意味が分からない。 - (11/8追記) 製造元のドライバ一覧を見てみると、一番下に"HidTEMPerHUM V10.1"という文字があるので、これもたぶんは生産途中から変わってる可能性がある。ので、こちらに区分しました
- http://gazoo.com/G-BLOG/BlogTaikenshitemimas/163006/Article.aspxでは無印と紹介されてますが、
しかし、232もHumも売ってるところが見つからないんだよなぁ。
もう諦めたほうがいい?
# MVPen (Pegasus Mobile NoteTaker) の解析 (1) - daily dayflower
HumanInterfaceDeviceのパケット解析について書かれてた。
Linuxで温度測定
Cactiを使って色んな温度を測定できるようになってはみたものの、さて室温に対してどれほど上がっているのか、という根本的な疑問がわき上がってきました。
そこで思い出したのが、これ。
http://www.march-rabbit.jp/index.php?main_page=product_info&cPath=17_99&products_id=2008
昔、AkibaWatchか何かで見たやつです。 ググってみたら中身のプロトコルはRS232Cらしいが、型名で検索してもLinux用ドライバとかは見あたらない。
代わりに見つけたのが、製造元(?)と思われる中国のサイト。
PCsensor.com , RDing tech
幸いにも英語表記だったので探してみると、ありました。Linux用ドライバ。
ただ、これは上記の『TEMPerNTC』用ではなくて『TEMPer232』という別商品用…のように見える。 DLしてみると"USB Driver"としか無いので、他の機種で使えるかどうかは不明。
ちなみにその『TEMPer232』とやらはeBayで買えるらしい。
どっちも買ってみて、使えたらラッキーなのかも?
まだeBayなんかの海外通販って経験が無いので、誰か人柱になりませんか?w
#Zipの中にはFedora用とRedhat用が入ってた。Debian系はFedora用使えばいいのかな?
#ググってみたらPython用のスクリプトも転がってたので、TEMPer232のほうは密かに実績があるのかもしれない。
接続人数のスクリプト 更新しました
前のPCから替えたときに、Debian GNU/LinuxからXubuntuに変更したんですが、その頃から以前のスクリプトが使えなくなって、何が原因かわからずに最近まで放置してました。
で、何が原因かと思ったら、標準のシェルスクリプトがbashからdashに変わっている事を知らなかったのが原因でした('A`)
急いで「#!/bin/sh」だったのを「#!/bin/bash」に変更して、ひとまず動くようにはなったのですが、つい先日違うバグを見つけまして…
例のスクリプトでVer2.51とVer3.66の両方の接続人数をカウントしてたんですが、今までのスクリプトはVer3.66のアクセス数を見るために作ったもので、Ver2.51のほうは確実なチェックをしてませんでした。実は。
昨日なんとなく接続数とnetstat -6を見る機会があって、その時初めてVer2.51のアクセス数が半分になってると気づいたわけです。
原因は、Ver3.xxは同じポート番号を使用して、文字チャットと絵チャットのデータをやりとりしているのに対し、Ver2.51はそれぞれが別ポート番号なため、強制的に半分にしている件のスクリプトでは接続数が半分となってしまっていたわけです。
というわけで、無い脳みそをフル回転させて2時間くらいで書き直しました。 カッコワルかったカウンタのところと書き出し部も書き直し。 ついでにnetstat -6もsnmpのipv6に変更。
- porcon.sh
#!/bin/bash walk=(`snmpwalk -v 1 -c public localhost tcpConnectionState.ipv6 |grep $1|awk '{if($4=="established(5)"){cnt++}print cnt}'`) if [ -z $2 ];then clver="v3" else clver="v2" fi wcnum=`echo ${walk[@]} |wc --words` if [ $wcnum == "0" ];then typenum=0 elif [ $clver == "v2" ];then typenum=$wcnum else typenum=`expr $wcnum / 2` fi echo $typenum echo $typenum
v2かどうかはポート番号に続けて何かの文字をいれる(2か3しかないので手抜き)だけ。
$ ./portcon.sh 19028 v2 3 3
てな感じになります。
あと、JavaJRE1.6.0から付属されるようになったデバッグ支援ツール*1でキャッシュサイズに依存しないメモリ使用量とかが調べられないか見てるんですが、さっぱりわかりません('A`)
これが分かれば今よりも詳細な状況判断ができて便利だとおもうだけどねぇ…
nms2009/11/27 19:13
私はこれをカスタマイズして使ってます。
http://relavak.wordpress.com/2009/10/17/temper-temperature-sensor-linux-driver/