Eu tenho um script em lote para verificar o status de uma tarefa em execução pelo agendador de tarefas e o status do arquivo em lotes e também o status do balanceador de carga da rede.
minha pergunta é: -
Passo-1: - Eu quero verificar o status da tarefa (health.bat) em execução no agendador de tarefas, se estiver habilitado ou em status pronto, em seguida, pule e verifique a etapa 2
etapa 2: - aqui eu preciso verificar o status do balanceador de carga de rede (NLB) se estiver em estado convergente, em seguida, pular e sair ou então executar - > health.bat - > se não houver erro - > inicie o NLB ou então - > envie o email com a mensagem de erro
Problema com este código: -
O código está em execução para chamar health.bat e, em seguida, ele salta para iniciar o NLB, mesmo que o health.bat falhe: -
@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