mixiユーザー(id:1726250)

2017年10月08日16:25

405 view

時には昔の話を

写真ナシ)2013年頃の作品:簡易UPS

■機能概要:
・AC電源の喪失と回復のイベントをSNMPトラップに上げる。
・AC電源喪失するとバッテリライフを5分間隔でモニタ。残り15分を切ったらshutdownする。
・それぞれ/var/log/messagesに記録。

■前提:
・まぁまぁ最近のノートPC。ACPIバッテリーを持っていること。
・まぁまぁ最近のFreeBSD。devdとACPIが有効なこと。
・net-mgmt/net-snmp導入済みであること(対象機、監視サーバー)。ただしスクリプト1(後述)中のSNMPトラップを別の通知方法(メール等)で代替するならその限りではない。

■制約:
・「xfce4電源管理」など、別の電源管理機構とは競合する可能性あり。パソコン的マシンでは使わない方がいい。

■導入手順:
スクリプト1と2(後述)を用意。
/usr/local/etc/devd/devd.confを下記内容で新規作成(デフォルト/etc/devd.confをオーバーライド)。

notify 20 { #優先度を、デフォルト/etc/devd.confの10より上げる
match "system" "ACPI";
match "subsystem" "ACAD"; # ACアダプタイベントにマッチしたら
action "/root/snmptrap_devd_ACAD $notify" ; # snmptrapを上げる。
action "/etc/rc.d/power_profile $notify"; #デフォルトdevd.confにあるアクション。actionは複数記述可能。これを指定することで、デフォルトのアクションも実行させる。
action "/root/lifemon $notify | logger -i &" ; # 電池モニタとシャットダウンのスクリプト。& をつけてbgすること。
};

devd再起動
/etc/rc.d/devd restart または service devd restart

■スクリプト1:/root/snmptrap_devd_ACAD
#!/bin/sh
if [ $1 = "0x00" ]; then
MSG="LOST" ;
else
MSG="RESTORED" ;
fi
snmptrap -v 2c -c [監視用コミュ] [監視サーバー] '' netSnmp netSnmp.1 s "AC Power has $MSG."
logger "AC Power has $MSG."

■スクリプト2:/root/lifemon
#!/bin/sh
if [ $1 = "0x01" ]; then
# RESTOREDのときは空振り
exit
fi
echo "battery life monitor start."
# acline=0になってからbattery.timeが-1から残り時間に切り替わるのが遅いマシン対策として10秒待つ
sleep 10
AC=`sysctl -n hw.acpi.acline`
while [ ${AC} = 0 ]
do
lifemin=`sysctl -n hw.acpi.battery.time`
if [ ${lifemin} -lt 15 ]; then
echo "battery life has reached limit(${lifemin}). I'm going to shutdown..."
shutdown -p now
else
echo "battery life remain ${lifemin} minutes."
fi
sleep 300
AC=`sysctl -n hw.acpi.acline`
done
echo "battery life monitor end."

■実行結果(dmesg):※箇所ではsnmptrapが飛ぶ。
Oct 6 22:25:23 www admin: AC Power has LOST.※
Oct 6 22:25:23 www power_profile: changed to 'economy'
Oct 6 22:25:23 www admin[90785]: battery life monitor start.
Oct 6 22:25:23 www admin[90785]: battery life remain 91 minutes.
Oct 6 22:30:23 www admin[90785]: battery life remain 83 minutes.
Oct 6 22:35:24 www admin[90785]: battery life remain 78 minutes.
Oct 6 22:35:35 www admin: AC Power has RESTORED.※
Oct 6 22:35:35 www power_profile: changed to 'performance'
Oct 6 22:40:24 www admin[90785]: battery life monitor end.

------------------
写真1、2
だいぶ遡って、1990年代前半に使ってたサーバー。
(さすがにもう廃棄済み。写真もこれしか残ってない。構築当時のは写真屋でネガからCD-ROMにしてもらった様な記憶が。)

■アルミLチャンとリベットだけでインナーベイを増設(写真1)

■電源ユニットの外にサイレンサーダクト設置用のアングル、
ケース継ぎ目は、望みの場所からのみ吸気することを狙ってゴムシートでシール、
CPU(Am5x86)付近に吸気口(エアフィルター付き)を設けているのが見てとれる。
内側は防音材が貼りまくられている。(写真2)

静音化だエアフローだ、後になって言われても
何だよ今更、ってかんじ。だった。

------------------
■写真3(紙写真からscan):
同じ頃(撮影はかなり後:1998年か)、会社で作ったSCSIケース(とサーバー。Dell OmniPlex(EISA)、だったっけかな? OSはWinNT。)。
アクセスLEDとか、全部自作w
(当時、SCSI HDDは基板からアクセスLEDを出すことが出来た。ていうかデバイスIDを3ビットのジャンパーで設定する必要があった。
この箱は背面にそれ用のスイッチを備えており、ジャンパーはそこへ接続してある。)

端子やら熱収縮チューブ買いに、ずいぶんアキバに通ったものだ。
よく使った道具は、ドリルと皿モミカッター、はんだゴテ。

サーバーなのにjwcadで作業してるw
電源は誤押し防止にプラ板貼ってる。ドライブベイに空気穴掘るの好きだなオレw
ディスプレイ横のはTAかな?RJ11線ムリヤリ延伸したっけな。

後になって、出来合いの「自作パーツ」なんて売り出されても、何だよ今更、ってかんじ。だった。

SCSIケースの上奥にはメディコンハブが見える。当時はケーブルが安かったのと、壁に沿って敷くのが楽だったため10BASE-2を使っており、
Tが仲間に加わった時に終端に設置したのだった。
0 0

コメント

mixiユーザー

ログインしてコメントを確認・投稿する