LoginSignup
0
1

More than 1 year has passed since last update.

WindowsでNUT clientを立ち上げて停電時に自動シャットダウンする

Last updated at Posted at 2021-10-20

UPSを導入しようと思い立ってOMRONのBY35Sを購入したのだが、純正ソフトはLinuxはCentOSかRedHatしか対応しておらず自分の環境では使えなかった。そこでNUTを導入したが、いくつかpitfallがあったので備忘のために書いておく。この部分は恐らくBY50SでもAPCのUPSでも同じ。

目的:

・Ubuntu20.04
・Windows10 Pro
UbuntuをNUT Serverとした2台の同時シャットダウン

前提:

・Ubuntu側でのNUT ServerおよびNUT Clientの設定は終了していて、単体でのシャットダウンは実現できているものとする。

なおサードパーティ製GUIであるWinNUTも試してみたがうまく行かず諦めた(これは自分が悪いのかもしれない)

概要

  • 公式サイトからWindows用MSIをダウンロード
  • OpenSSL内のdll(LIBEYA32.dll, SSLEAY32.dll)をコピー
  • libgcc_s_dw2-1.dllのコピー
  • upsサーバーにアクセスできることを確認
  • clientの設定
  • サービスのログオンアカウント設定
  • サーバーからクライアントをシャットダウンできるか確認
  • 実際にコンセントから抜いて確認

主に参考にしたページ

公式サイトからWindows用MSIをダウンロード

ここは特に問題なし。以下特記ない限りClient側(Windows上)での操作。

OpenSSL内のdll(LIBEYA32.dll, SSLEAY32.dll)をコピー

その後、upsc.exeなどを起動しようとするとdllがないと怒られるので、32bit版のOpenSSLをダウンロードしてきて解凍し、LIBEYA32.dll, SSLEAY32.dllを`C:\Probram Files (x86)\NUT\bin\C:\Probram Files (x86)\NUT\sbin\にコピーしておく(前者だけでも良いかも)

参考質疑で紹介されていたhttp://web.archive.org/web/20160826051001/http:/indy.fulgan.com/SSL/からopenssl-1.0.2h-i386-win32.zipを使った。
https://alioth-lists.debian.net/pipermail/nut-upsuser/2016-September/010295.html

libgcc_s_dw2-1.dllのコピー

これは既知のバグらしい。libgcc_s_dw2-1.dllc:\Program Files (x86)\NUT\bin\からc:\Program
Files (x86)\NUT\sbin\
にコピーする
https://alioth-lists.debian.net/pipermail/nut-upsuser/2015-September/009880.html

upsサーバーにアクセスできることを確認

コマンドプロンプトで以下(Powershellだとうまく行かなかった)。
"C:\Program Files(x86)\NUT\bin\upsc.exe" [ups name]@[server ip]:[port]

電圧のやドライバの情報が20行くらい出てきたらok。

clientの設定

NUT Client Configuration>Ubuntu or Windows Official Clientに沿って、nut.confとupsmon.confの設定を行う。
といっても、C:\Program Files (x86)\NUT\etc内にあるnut.conf

MODE=netclient

を追記し、

upsmon.conf

MONITOR <ups_name>@<NUT_server_IP> 1 <slave_username> <slave_password> slave

と、

SHUTDOWNCMD "C:\\WINDOWS\\system32\\shutdown.exe -s -t 0"

を追記するのみ。

サービスのログオンアカウント設定

コンピュータの管理から、Network UPS Toolsというサービスを確認。こちらのログオンアカウントをローカルシステムアカウントから管理者権限のあるアカウントに変更しておく。(これを変更しないとシャットダウンされない。イベントビューワーでアプリケーションログを確認しても特にエラーが出ている様子もなく、時間を溶かしてしまった。分かってしまえば当たり前の話だった…)

サーバーからクライアントをシャットダウンできるか確認

サーバー、クライアント共にシャットダウンして良いことを確認してから、

sudo upsmon -c fsd

とすると、サーバーからの強制シャットダウンコマンドが各NUT clientに送られ、そこで先ほどupsmon.confに設定したSHUTDOWNCMDが走る。シャットダウンされればok。

もしシャットダウンされなければ、SHUTDOWNCMDの中身("C:\WINDOWS\system32\shutdown.exe -s -t 0")でシャットダウンされることを確認する。

コマンドではシャットダウンされるのに、upsmon経由ではシャットダウンされないときはサービスのログオンアカウントの確認を。

実際にコンセントから抜いて確認

ここまで完了していれば、実際にコンセントから抜いた際にWindowsもシャットダウンされるはず。お疲れさまでした。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1