以前自己寫的一個監(jiān)控腳本,每隔10秒使用PING命令檢查一個IP列表中的IP,如果不通,則通過messenger消息發(fā)送,并使用BEEP發(fā)出報警聲。需要文件sleep.exe(可到網(wǎng)上下一個)、BEEP.EXE(自己用DELPHI寫的,不必需,代碼可去掉,也可以去網(wǎng)上找一個),再建立文件ip.txt,user.txt,運行腳本即可。
復(fù)制代碼 代碼如下:
rem main.bat
@echo off
for /F "eol=; tokens=1,2* delims==" %%i in (ip.TXT) do call :checkip %%i %%j 0
echo --------------------------------------------------------------
echo ----第一輪檢查完畢,如果沒有聽到報警聲,表示各IP都可以PING通----
echo ----如果有異常的IP,請再手動使用PING命令,以確認(rèn)檢查的正確性----
echo ---- 現(xiàn)在進(jìn)行循環(huán)檢查,每隔10000ms檢查一個IP ----
echo --------------------------------------------------------------
:begin
for /F "eol=; tokens=1,2* delims==" %%i in (ip.TXT) do call :checkip %%i %%j 10000
goto begin
:checkip
@echo off
PING %1 -n 1 | FIND "TTL=" >NUL
IF NOT ERRORLEVEL 1 ECHO %1(%2) Status OK at %TIME%
IF NOT ERRORLEVEL 1 GOTO NEXT
PING %1 -n 1 -w 3000 | FIND "TTL=" >NUL
if %ERRORLEVEL%==1 call :send %1 %2 ELSE ECHO %1(%2) Status OK at %TIME%
:Next
sleep %3
goto end
:send
@echo off
ECHO %1(%2):::::Status ERROR at %TIME%:::::
for /F "eol=;" %%i in (user.TXT) do net send %%i "Error Pinging %1(%2)." >NUL
Beep 1500 500
Beep 500 500
Beep 1500 500
Beep 500 500
goto end
:end
;ip.txt,關(guān)鍵IP,一行一個IP,等號后面可輸入名稱
192.168.0.1=集團(tuán)網(wǎng)關(guān)
192.168.0.123=test
;user.txt,計算機(jī)名或IP,檢測到網(wǎng)絡(luò)不通時,發(fā)送消息給文中的用戶
computername