背面ファンコントロールスクリプト

前書き

HDDの温度がわかるとやっぱり冷やしたくなるもの。
HDDは45度を越すと故障率があがりますからね〜(−−A"
でも空冷では限界があるし、ファンをずぅ〜っと高速回転させてるとうるさい。
だから、効率よく(簡単に)温度管理をしたいですね♪

そんなときには、これ!

使用上の注意をよく読み、用法・用量を守って正しくお使いください。

効能・効果
成分
用法・用量
取り扱い上の注意



効能・効果

HDDの温度によって、背面ファンの回転速度を調整します。
一定温度以上なら高速回転。一定温度以下なら低速回転。と幅を持たせて制御するので、
ファン回転速度の無駄な切り替えがありません。

また、サンプルスクリプトでは引数により「ファン回転速度の制御」のほか、
・HDDの温度の確認
・現在のファン回転速度の確認(高速/低速)
・ファン回転速度の強制制御
が行えます。

成分

サンプルスクリプトver071014(fan.tar.gz) md5sum crc32:D639699E
  fan.sh
  readme.txt
  readme_linux.txt
・root権限
hddtemp
LEDを操作する(5分落ち問題)準ずる処置(必須)
・cron
・適度な時期(排熱が心配になるような環境)
・数時間単位の時間(設定値を求めるため)

用法・用量

1.hddtempでHDDの温度が取得できることを確認します。
まぁ、HDDの温度でなくても「玄箱の内部温度」を知ることができればいいんだけど・・・

2.背面ファンコントロールスクリプトを用意します。

3.必要な設定を行います。
設定変更可能な項目は以下の通りです(デフォルト値)

	ファンを高速回転に切り替える温度(44)
	ファンを低速回転に切り替える温度(40)
	ファンの回転状態を保存するディレクトリ(/root/dat/)
	ファンの回転状態を保存するファイル名(fan.db)
	hddtempの場所(/usr/sbin/hddtemp)
	ログ出力の確認(yes)
	ログファイルの場所(/var/log/fan.log)
	低速回転チェック用ファイルの名前(fan_control_script)
	kuroevtdの起動スクリプトの場所(/etc/init.d/kuroevtd)
4.ファンの回転状態を出力するファイルを作成します。
	# mkdir /root/dat
	# touch /root/dat/fan.db
5.ログ関係の設定
5-1.ログが必要ならばログファイルを作成します。
	# touch /var/log/fan.log
5-2.ログが不要ならばthink=の値をnoに変更する。
	# vi /root/fan.sh
		(変更)
		┃#log setting
		┃#Do you think that you should take the log in this script?
		┃#yes or no
		┃think=no
6.適当な場所にスクリプトをアップロードし、動作確認を行います。
スクリプトのある場所で
	# ./fan.sh [opt]
デバック時には
	# sh -x ./fan.sh [opt]
		注:動作しない場合、アクセス権(実行権)を確認してください。

fan.shに使用できる引数[opt]は以下の通りです。
	set	:設定に従いファンの回転速度をコントロールします。	(cronでも代用可)
	temp	:HDDの温度を表示します。				(-tでも代用可)
	status	:ファンの回転状態を表示します(高速/低速)		(-sでも代用可)
	fast	:ファンの回転速度を強制的に高速回転にします。	(onでも代用可)
	slow	:ファンの回転速度を強制的に低速回転にします。	(offでも代用可)
7.問題がないことを確認したら、適当な設定でcronに登録します。
	# crontab -e
		注:環境によってはeditorの設定をする必要があります。
		  (viを指定された場所にeditorとしてシンボリックリンクを作る)

		設定例
		┃*/5  *   *   *   *  /root/fan.sh set
			注:/root/にfan.shをアップロードしています。
			注:この設定では5分ごとにfan.shをsetで動作させています。
8.少し放置し、cronのログなどでスクリプトが動作しているか確認します。

取り扱い上の注意

このスクリプトを使用するときには、
必ず、LEDを操作する(5分落ち問題)準ずる処置を行ってください。
実施しない場合は「5分落ち問題」のために玄箱が勝手に再起動してしまいます。

このスクリプトでは、HDDの温度を確認してファンの回転速度を制御します。
あまりにも高い温度・低い温度を設定するとコントロールがうまく行えない場合があります。
低温側の温度設定はファンの高速回転で下がる範囲で指定してください。
高速回転のまま、ファンの回転が固定されます(うるさい)

<低速側の設定値の求め方(例)>
室温が高くなる季節(大抵は夏場)にファンを高速回転にし、
どこまでHDDの温度が下がるかを測定します。
(cronによってファンコントロールしないようにすること)
測定された温度より高い値を低速側の温度設定としてください。

高速側はデフォルトでいいと思います(45度を超えるとHDDの寿命が短くなるらしいので)

関連ページ
	・hddtempcronについてLEDを操作する(5分落ち問題)5分落ち問題のもう一つの回避法

あとがき

このスクリプト、最初は「設定温度を起点にしてファンの回転数を切り替える」だけ。
って言う、スクリプトだったんです。
まぁ、これだとファンがよく高速<>低速に切り替わってうるさい(そんなに冷えないし)
だから、高速回転への変更温度と低速回転への変更温度の温度幅を持たせることで、
無駄にファンの回転数を変更しないようにしました。

理屈は簡単だけど思いつくのに時間がかかったよ(;´Д`)


戻るなら押せ!