停電時に自宅サーバを自動でシャットダウンする

【PR】
※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。

まだ停電がない我が家ですが、
今後は分からないということで、ネットの情報を参考にUPSが無くても自動でシャットダウンするシェルをcronで走らせておくことにしました。ちなみにノートPCのサーバでバッテリーがシャットダウンする間ぐらいはもつことが前提です。
自宅のルーターのIPアドレスのみにPingを打って停電になっていないかチェックします。応答がなければルーターの電源が入っていない=停電ということになります。

#!/bin/bash
onoff=0
ping 192.168.10.1 -c 4
if [ $? = 0 ]
then
onoff=10
fi
 
if [ $onoff = 10 ]
then
echo "PC ON"←元ページにもあるように、thenの時の動作を書いているだけで何でもいい
else
echo "PC OFF"←この行は無くてもいいですが、会社などではここにメールコマンドでどこかにシャットダウンしたというメールを送ってもいいかと。
halt -p←poweroff
fi

会社では元ページにあるように、これが落ちるとシャットダウンさせたいというトリガーとなるマシンをいくつか、決めておき(ネットワークが信頼できるなら一台が対象でもいいでしょう)、トリガーとなるマシンをシャットダウンしたら、それを見ているマシンがバタバタとシャットダウンするように仕掛けておきます。Windowsでも同じ感じでチェックするバッチファイルを作成してタスクでスケジュールして監視するのをどっかでみました。

監視する機器は以下のようなものを使えば会社のどこかに転がっていると思われ、無料同然か。

○突然停電した時用
何でもいいのでIPアドレスを設定できるルーターのようなもの
→突然電源を切っても大丈夫なのが○。適当なIPを振っておく。UPSにつなげないこと(停電検知が遅くなる)

○計画的に落とす用
ただ動いているだけでいいので、ハードディスクがなくともUSBでLinuxがブートするPCにIPアドレスをふって稼働させておく。
Linuxがただ起動すればいいので、通常業務としては廃棄同然のPCでも可。
これをシャットダウンすると、これを見ている他のマシンがシャットダウンしていくようにする。
→ハードディスク起動だと壊れやすそう、壊れた時に面倒なのでUSBを使用。何百円かのUSBメモリをいくつか買ってあらかじめ複製をつくっておけば、USBメモリが壊れても予備と変えて起動すれば即元通りに!

Tips

Posted by admin