ラベル 電源ON/OFF の投稿を表示しています。 すべての投稿を表示
ラベル 電源ON/OFF の投稿を表示しています。 すべての投稿を表示

2015年8月27日木曜日

コストを掛けずにサーバマシンの電源ON/OFFのスケジューリングを自動化する

こんにちは、渡辺です。


皆さんは、定期的なコンピュータの起動停止はどうされていますか?

数台だったらまだよいですが、コンピュータの台数が多くなるとこれらを手動で行う労力はバカになりませんね。
もちろん、数台であっても手動で行うには、深夜や早朝に時間を拘束されることになります。

みなさんも何かしらのツールを利用されている方が多いのではないかと思いますが、そのためだけに高価なツールを利用していたり、完全自動化となっていなかったりしませんか?

そこで、今回は、まだ自動化されていない方も、既に自動化されている方にも Wake On Lanを用いリモートからサーバマシンの電源ON/OFFを自動化する手順について書いていきます。

イメージはこんな感じです。



以下のとおり、大きく2つのパートに分けて書いていきます。

  1. 電源ON/OFFバッチの準備
  2. A-AUTOでの自動化手順


1. 電源ON/OFFバッチの準備

先ずは、電源ON・OFFのバッチファイルの準備です。


電源OFFバッチ
poweroff.batというファイル名で作成しておきます。

@echo off
echo ### Shutdown Start ###

set RC=99

if "%1"=="" (
  goto PARAM_INVALID
)
set NAME=%1
echo ### Shutdown Target = %NAME% ###


shutdown /m %NAME% /s

if not "%ERRORLEVEL%" == "0" (
  goto SHUTDOWN_FAILED
) else (
  set RC=0
  goto END
)

:PARAM_INVALID
echo ### parameter invalid.
set RC=4
goto END

:SHUTDOWN_FAILED
set RC=%ERRORLEVEL%
goto END

:END
echo ### Shutdown End rc=%RC% ###

exit %RC%



電源OFFは、Widnowsのshutdown を利用します。
上記バッチでは、自動化時に汎用性を持たせるため、電源をoffするコンピュータ名(またはIPアドレス)をパラメータで渡すようにしています。



電源ONバッチ
poweron.batというファイル名で作成しておきます。

@echo off
echo ### Power On START ###

set RC=99

if "%1"=="" (
  goto PARAM_INVALID
)
set PORT_NO=%1

if "%2"=="" (
  goto PARAM_INVALID
)
set IP=%2

if "%3"=="" (
  goto PARAM_INVALID
)
set SUBNET=%3

if "%4"=="" (
  goto PARAM_INVALID
)
set MAC_ADDR=%4

echo ### Power On Target: Port=%PORT_NO% Ip=%IP% SubNet=%SUBNET% MAC_Addr=%MAC_ADDR% ###

"C:\BSP\AUW\BIN\poweron.exe" -p=%PORT_NO% %IP% %SUBNET% %MAC_ADDR%


if not "%ERRORLEVEL%" == "0" (
  goto POWERON_FAILED
) else (
  set RC=0
  goto END
)

:PARAM_INVALID
echo ### parameter invalid.
set RC=4
goto END

:POWERON_FAILED
set RC=%ERRORLEVEL%
goto END

:END
echo ### Power On  END rc=%RC% ###
exit %RC%




電源ONは、上記サンプルでは自社作成した poweron.exe というツールを利用しています。

また、上記バッチでは、自動化時に汎用性を持たせるため、UDPのポート番号、IPアドレス、サブネットマスク、MACアドレスをパラメータで渡すようにしています。

電源ON用のフリーツールはいろいろとあるので、任意のツールをご利用いただければと思います。
ちなみに、フリーツールの使用が禁止されているお客様の場合、こちらからご連絡いただければ、弊社から提供に関してのご連絡をさせていただきますので、お気軽にご相談ください。



  • 上記バッチで電源ONするマシンのMACアドレス、IPアドレスなどを渡す必要がありますが、以下のコマンドで確認可能です。
     ipconfig /all
  • 電源ONするマシンは、有線LANで繋がれている必要があります
  • マジックパケットを送信するために、BIOSやデバイスマネージャにて設定する必要があります
    以下のサイトなどを参考に設定を行ってください
    http://www.atmarkit.co.jp/ait/articles/0602/25/news014.html


2. A-AUTOでの自動化手順

ここからは、準備したバッチファイルをA-AUTOで自動化する手順について記載します。