Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Батник для проверки доступности серверов... (http://forum.oszone.net/showthread.php?t=307430)

Bara1gin 02-11-2015 11:33 2570688

Батник для проверки доступности серверов...
 
Есть программа имеющая постоянное интернет соединение с определенный серверами и периодически они перестают быть доступными после чего прога висит.
Нужен батник для проверки пинга с переодичностью 15 минут и при его отсутствии перезапускала прогу (с завершением процесса).

Буду очень признателен за помощь! :Beer:

Elven 02-11-2015 12:37 2570702

Например так, если я правильно понял о чем речь.
Код:

@echo off
for /F %%n in (IP.txt) do (
ping /n 1 %%n | find /i "TTL"
if not errorlevel 1 (
echo %time% %%n online >> result.log
) else (
echo %time% %%n offline >> result.log
taskkill /im имя_процесса
ping 0.0.0.0 -w 1000 -n 5
start имя_проги
)
)


greg zakharov 02-11-2015 14:06 2570738

Elven, если список айпишников статический, то есть не генерируется автоматически и\или не изменяется, лучше хранить его прямо в бате, а вывод пинга лучше пихать в csv:
Код:

@echo off
  setlocal
    for /f "delims=:" %%i in (
      'findstr /nirc:"exit /b" "%~f0"'
    ) do set "i=%%i"
   
    set "res=%~dp0ping.csv"
   
    if not exist "%res%" (
      echo:Time,IPAddress,Status>"%res%"
    )
    for /f %%i in ('more +%i% "%~f0"') do (
      ping -n 1 %%i | findstr /irc:"ttl"
      if not errorlevel 1 (
        for /f "tokens=1 delims=," %%j in (
          "%time%"
        ) do echo:%%j,%%i,Success>>"%res%"
      ) else (
        del /f /q "%res%"
        taskkill /im some.exe
        ping -n 5 0.0.0.0 -w 1000>nul
        start some.exe
      )
    )
  endlocal
exit /b

213.180.193.3
93.158.134.3
213.180.204.3
212.188.10.99
212.188.10.104
212.188.10.94
212.188.10.89



Время: 10:03.

Время: 10:03.
© OSzone.net 2001-