2026年1月2日金曜日

mpdサーバをUPSにつないで,NASからの信号でシャットダウンできるようにする

 ある日,突然ブレーカが上がった.エアコンとオーブンが動いているところに,掃除機の突入電流で飛んだらしい.

PC と NAS は UPS で保護していたのでとくに問題はなかったのだが,mpd が動いているマシンは何も対策していなかったので,当然落ちてしまった.Linux はどうしてもこういう事故に弱い側面があるので,戦々恐々で再起動したところ,とくに問題なく動いたので一安心.

ということで,対応を考える必要がある.といっても方向としては NAS と同じ UPS から電源を取る一択.やるべきことは Manjaro の上で UPS とどう連動させるか,ということに尽きる.

UPS (APC ES550G) は NAS (ASUSTOR AS1102T) に USB 接続でつながっている.NAS 側の Web 設定画面を見ると 外部機器 > UPS の初期設定の中に「ネットワーク UPS サポートを有効にする」というのがあるので,これを ON に.UPS 名,ユーザ名,パスワードは適宜設定.すぐ忘れてしまう IP アドレスもメモしておく (うちではこういうのはすべてスタティックに設定している).これで AS1102T が UPS サーバとして働く.


続いて Manjaro 側の設定.

パッケージマネージャから nut (Network UPS Tools) をインストール.以下の二つのファイルを修正 (要 root 権限).
/etc/nut/nut.conf:MODE行の修正
MODE = none → Mode = client に変更

/etc/nut/upsmon.conf:MONITOR行の記述とSHUTDOWNCMD行の修正.UPS名とか IP アドレスとかは UPSサーバ (今の場合は AS1102T) に付いているものであることに注意.

MONITOR UPS名@192.168.xxx.xxx 1 ユーザ名 パスワード slave

SHUTDOWNCMD "/sbin/shutdown -h +0" → +0 を +3 (3分後に shutdown) に変更

nut-monitorデーモンを起動

sudo systemctl enable nut-monitor

sudo systemctl start nut-monitor

UPS の状態を upc コマンドで確認できれば成功.

usbc asustor@[UPSサーバ IP アドレス]

これで UPS の状態が表示されるはず.


mpdサーバの AC アダプタが UPS に届かないので延長ケーブルとか買ってこないとダメだorz

0 件のコメント:

コメントを投稿