2 台での冗長構成をしていて互いに ping を飛ばしあって、落ちていないかどうかを調べるバッチファイル




はじめに
例えば、 と言ったときに、互いに ping を打ち合って、死んでいたらメールなりを飛ばすバッチファイルです。
機器の故障検知に使えるでしょう。
当然ですが、同時に死んでしまったら、意味ないですよ。


バッチファイルのコード
こんな感じ
@ECHO OFF
	REM list.txt の内容と ipconfig の内容を比較して、
	REM 自分の IP アドレス以外に ping を実施して、返事がなければ
	REM メールする
	REM
	REM (1)IPCONFIG.exe より、自分のアドレスを取得
	REM (2)アドレスファイルと比較して自分ではないアドレスを取得
	REM (3)自分ではないアドレスに PING して、
	REM (4)反応なければメールする。

	REM アドレスファイル
SET LISTFile=list.txt

	REM (0) アドレスファイルがなければ、終了
IF NOT EXIST %LISTFile% GOTO FIN

	REM (1)
FOR /F "usebackq delims=: tokens=2" %%I IN (`IPCONFIG.EXE^|FIND.EXE "IP Address"`) DO SET myAddr=%%I

	REM (2)
FOR /F %%I IN (%LISTFile%) DO IF NOT %myAddr%==%%I SET myTarget=%%I

	REM (3)
SET myFlg=0
PING.EXE -n 1 %myTarget% || SET myFlg=1

	REM (4)
IF "%myFlg%"=="1" echo mail

	REM (5) 終了処理
:FIN
FOR %%I IN (LISTFile myFlg myAddr myTarget) DO SET %%I=
ちょっとトリッキーかな....

条件としては、NIC 一枚のホストを想定しています。

IPCONFIG で複数のアドレスが表示されてしまう場合は、このバッチファイルは想定外です。

アドレスファイルを作って(一行に一アドレスで、2台構成の冗長構成を想定しているので2行のみのはず)、そしてこのバッチファイルを、両方にそのままコピーして(とはいってもメール送信部分は、「echo mail」だから、環境に合わせて書き換えましょう)インストールしておけばよい。という事です。
バッチファイル中に自分と相手方のアドレスを見分ける処理をしているからね。

DFS で、各ホストにコピーしておけば良いでしょう。

免責など
著作権は放棄します。
このソフト(本ページで紹介しているソフトウエア、および本ページで掲載しているバッチファイ)を使用したことによって生じた、
いかなる損害についても責任は持ちません。
ソースコードについても、各自の責任において、
自由にいじってくれてもいいです。


DownLoad(このページのコードを参照)



mail to active@window.goukaku.com