У меня есть пакетный сценарий для проверки состояния задачи, выполняемой планировщиком задач, и состояния пакетного файла, а также состояния балансировщика сетевой нагрузки.
мой вопрос:
Шаг 1:- Я хочу проверить состояние задачи (health.bat), запущенной в планировщике задач, если она включена или находится в состоянии готовности, затем перейдите и проверьте шаг 2
Шаг 2:- здесь мне нужно проверить состояние балансировщика сетевой нагрузки (NLB), если он находится в конвергентном состоянии, затем перейти и выйти или запустить -> health.bat -> если ошибки нет -> начать NLB или еще -> отправить письмо с сообщением об ошибке
Проблема с этим кодом:-
Код запускается для вызова health.bat, затем он переходит к запуску NLB даже при сбое health.bat:
@echo off
setlocal enableextensions enabledelayedexpansion
set itemail="mailid"
FOR /F "usebackq" %%i IN (`hostname`) DO SET host=%%i
::set host=%COMPUTERNAME%
set TASKNAME1=health
c:
cd\
cd batch
:: Checking is wscheck is disabled
schtasks.exe /query /tn "%TASKNAME1%" >CheckTS.txt 2>&1
findstr "Running Ready" CheckTS.txt
if %errorlevel% NEQ 0 (
schtasks.exe /change /ENABLE /TN "%TASKNAME1%" >CheckTS.txt
schtasks.exe /query /tn "%TASKNAME1%" >>CheckTS.txt
wmailto %itemail% -s"The Task health has been enabled on %host%." -tCheckTS.txt
)
:: Checking if the node is stared
NLB.exe query >CheckNLB.txt 2>&1
findstr /L /c:"converged" CheckNLB.txt
if %errorlevel% NEQ 0 (
call health.bat
findstr /L /c:"<--FAIL-->" health.txt
if !errorlevel! NEQ 0 (
wmailto %itemail% -s"DOWN The node %host% cannot be started as the health failed." -thealthstatus.txt
goto :exit
)
NLB.exe start >CheckNLB.txt
TIMEOUT /T 10
NLB.exe query >>CheckNLB.txt
wmailto %itemail% -s"The NLB has been Started on %host%." -tCheckNLB.txt
)
:exit
pause