Esse projeto teve como objetivo criar um alerta visual em caso de perda de conexão com algum equipamento na cadeia de transmissão.
Basicamente o que é feito: É criado uma lista representado uma fila circular de equipamentos. A cada minuto um equipamento desta fila é chamado e então um comando ping é enviado.
Em caso de normalidade, a tela do prompt permanece na cor azul. Em caso de problema, a tela do prompt fica vermelha, o status mostrado do equipamento muda de OK para PROBLEM e um arquivo de log é gerado.
Esse processo fica preso em Loop pela fila circular, até que o usuário encerre o programa. Abaixo segue o código usado para o script. Alguns IPs e Nomes foram ocultados por questão de segurança.
@echo off
rem ------------------------------------------------------------------------
rem Script: informa.bat
rem Objetivo: Testar a conexão de equipamentos e alertar em caso de falha.
rem Autor(es): Alex Souza Marques / Wander Correa
rem Data: 30-05-2018
rem ------------------------------------------------------------------------
title INFORMA
mode 80,60
color 1F
set "num_pings=3"
set "reg_pings=1"
set "log_file=informa.txt"
set "wait_for=10"
rem ------------------------------------------------------------------------
set "ibuc_a_tv_xxx_status=OK"
set "ibuc_b_tv_xxx_status=OK"
set "modu_a_tv_xxx_status=OK"
set "modu_b_tv_xxx_status=OK"
set "enco_a_tv_xxx_status=OK"
set "enco_b_tv_xxx_status=OK"
set "ibuc_a_tv_yyy_status=OK"
set "ibuc_b_tv_yyy_status=OK"
set "modu_a_tv_yyy_status=OK"
set "modu_b_tv_yyy_status=OK"
set "enco_a_tv_yyy_status=OK"
set "enco_b_tv_yyy_status=OK"
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
set "ibuc_a_tv_xxx_host=xxx.xxx.xxx.xxx"
set "ibuc_b_tv_xxx_host=xxx.xxx.xxx.xxx"
set "modu_a_tv_xxx_host=xxx.xxx.xxx.xxx"
set "modu_b_tv_xxx_host=xxx.xxx.xxx.xxx"
set "enco_a_tv_xxx_host=xxx.xxx.xxx.xxx"
set "enco_b_tv_xxx_host=xxx.xxx.xxx.xxx"
set "ibuc_a_tv_yyy_host=yyy.yyy.yyy.yyy"
set "ibuc_b_tv_yyy_host=yyy.yyy.yyy.yyy"
set "modu_a_tv_yyy_host=yyy.yyy.yyy.yyy"
set "modu_b_tv_yyy_host=yyy.yyy.yyy.yyy"
set "enco_a_tv_yyy_host=yyy.yyy.yyy.yyy"
set "enco_b_tv_yyy_host=yyy.yyy.yyy.yyy"
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
rem --------------------------- MAIN PROGRAM -------------------------------
rem ------------------------------------------------------------------------
:loop
call:status_frame
call:color_frame
call:get_date
rem ----------------------------------------------------------------
echo. IBUC-A TV XXX
ping -n %num_pings% %ibuc_a_tv_xxx_host% | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
echo. SUCCESS
set "ibuc_a_tv_xxx_status=OK"
) else (
echo. >> %log_file%
echo. ### IBUC-A TV XXX### >> %log_file%
echo. %date_time% >> %log_file%
echo. >> %log_file%
ping -n %reg_pings% %ibuc_a_tv_xxx_host% >> %log_file%
echo. ------------------------------------------------------------------------------ >> %log_file%
echo. FAILURE
set "ibuc_a_tv_xxx_status=PROBLEM"
)
ping -n %wait_for% 127.0.0.1 > nul
rem ----------------------------------------------------------------
cls
call:status_frame
call:color_frame
call:get_date
rem ----------------------------------------------------------------
echo. IBUC-B TV XXX
ping -n %num_pings% %ibuc_b_tv_xxx_host% | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
echo. SUCCESS
set "ibuc_b_tv_xxx_status=OK"
) else (
echo. >> %log_file%
echo. ### IBUC-B TV XXX ### >> %log_file%
echo. %date_time% >> %log_file%
echo. >> %log_file%
ping -n %reg_pings% %ibuc_b_tv_xxx_host% >> %log_file%
echo. ------------------------------------------------------------------------------ >> %log_file%
echo. FAILURE
set "ibuc_b_tv_xxx_status=PROBLEM"
)
ping -n %wait_for% 127.0.0.1 > nul
rem ----------------------------------------------------------------
cls
call:status_frame
call:color_frame
call:get_date
rem ----------------------------------------------------------------
echo. MODULADOR-A TV XXX
ping -n %num_pings% %modu_a_tv_xxx_host% | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
echo. SUCCESS
set "modu_a_tv_xxx_status=OK"
) else (
echo. >> %log_file%
echo. ### MODULADOR-A TV XXX ### >> %log_file%
echo. %date_time% >> %log_file%
echo. >> %log_file%
ping -n %reg_pings% %modu_a_tv_xxx_host% >> %log_file%
echo. ------------------------------------------------------------------------------ >> %log_file%
echo. FAILURE
set "modu_a_tv_xxx_status=PROBLEM"
)
ping -n %wait_for% 127.0.0.1 > nul
rem ----------------------------------------------------------------
cls
call:status_frame
call:color_frame
call:get_date
rem ----------------------------------------------------------------
echo. MODULADOR-B TV XXX
ping -n %num_pings% %modu_b_tv_xxx_host% | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
echo. SUCCESS
set "modu_b_tv_xxx_status=OK"
) else (
echo. >> %log_file%
echo. ### MODULADOR-B TV XXX ### >> %log_file%
echo. %date_time% >> %log_file%
echo. >> %log_file%
ping -n %reg_pings% %modu_b_tv_xxx_host% >> %log_file%
echo. ------------------------------------------------------------------------------ >> %log_file%
echo. FAILURE
set "modu_b_tv_xxx_status=PROBLEM"
)
ping -n %wait_for% 127.0.0.1 > nul
rem ----------------------------------------------------------------
cls
call:status_frame
call:color_frame
call:get_date
rem ----------------------------------------------------------------
echo. ENCODER-A TV XXX
ping -n %num_pings% %enco_a_tv_xxx_host% | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
echo. SUCCESS
set "enco_a_tv_xxx_status=OK"
) else (
echo. >> %log_file%
echo. ### ENCODER-A TV XXX ### >> %log_file%
echo. %date_time% >> %log_file%
echo. >> %log_file%
ping -n %reg_pings% %enco_a_tv_xxx_host% >> %log_file%
echo. ------------------------------------------------------------------------------ >> %log_file%
echo. FAILURE
set "enco_a_tv_xxx_status=PROBLEM"
)
ping -n %wait_for% 127.0.0.1 > nul
rem ----------------------------------------------------------------
cls
call:status_frame
call:color_frame
call:get_date
rem ----------------------------------------------------------------
echo. ENCODER-B TV XXX
ping -n %num_pings% %enco_b_tv_xxx_host% | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
echo. SUCCESS
set "enco_b_tv_xxx_status=OK"
) else (
echo. >> %log_file%
echo. ### ENCODER-B TV XXX ### >> %log_file%
echo. %date_time% >> %log_file%
echo. >> %log_file%
ping -n %reg_pings% %enco_b_tv_xxx_host% >> %log_file%
echo. ------------------------------------------------------------------------------ >> %log_file%
echo. FAILURE
set "enco_b_tv_xxx_status=PROBLEM"
)
ping -n %wait_for% 127.0.0.1 > nul
rem ----------------------------------------------------------------
cls
call:status_frame
call:color_frame
call:get_date
rem ----------------------------------------------------------------
echo. IBUC-A TV YYY
ping -n %num_pings% %ibuc_a_tv_yyy_host% | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
echo. SUCCESS
set "ibuc_a_tv_yyy_status=OK"
) else (
echo. >> %log_file%
echo. ### IBUC-A TV YYY ### >> %log_file%
echo. %date_time% >> %log_file%
echo. >> %log_file%
ping -n %reg_pings% %ibuc_a_tv_yyy_host% >> %log_file%
echo. ------------------------------------------------------------------------------ >> %log_file%
echo. FAILURE
set "ibuc_a_tv_yyy_status=PROBLEM"
)
ping -n %wait_for% 127.0.0.1 > nul
rem ----------------------------------------------------------------
cls
call:status_frame
call:color_frame
call:get_date
rem ----------------------------------------------------------------
echo. IBUC-B TV YYY
ping -n %num_pings% %ibuc_b_tv_yyy_host% | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
echo. SUCCESS
set "ibuc_b_tv_yyy_status=OK"
) else (
echo. >> %log_file%
echo. ### IBUC-B TV YYY ### >> %log_file%
echo. %date_time% >> %log_file%
echo. >> %log_file%
ping -n %reg_pings% %ibuc_b_tv_yyy_host% >> %log_file%
echo. ------------------------------------------------------------------------------ >> %log_file%
echo. FAILURE
set "ibuc_b_tv_yyy_status=PROBLEM"
)
ping -n %wait_for% 127.0.0.1 > nul
rem ----------------------------------------------------------------
cls
call:status_frame
call:color_frame
call:get_date
rem ----------------------------------------------------------------
echo. MODULADOR-A TV YYY
ping -n %num_pings% %modu_a_tv_yyy_host% | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
echo. SUCCESS
set "modu_a_tv_yyy_status=OK"
) else (
echo. >> %log_file%
echo. ### MODULADOR-A TV YYY ### >> %log_file%
echo. %date_time% >> %log_file%
echo. >> %log_file%
ping -n %reg_pings% %modu_a_tv_yyy_host% >> %log_file%
echo. ------------------------------------------------------------------------------ >> %log_file%
echo. FAILURE
set "modu_a_tv_yyy_status=PROBLEM"
)
ping -n %wait_for% 127.0.0.1 > nul
rem ----------------------------------------------------------------
cls
call:status_frame
call:color_frame
call:get_date
rem ----------------------------------------------------------------
echo. MODULADOR-B TV YYY
ping -n %num_pings% %modu_b_tv_yyy_host% | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
echo. SUCCESS
set "modu_b_tv_yyy_status=OK"
) else (
echo. >> %log_file%
echo. ### MODULADOR-B TV YYY ### >> %log_file%
echo. %date_time% >> %log_file%
echo. >> %log_file%
ping -n %reg_pings% %modu_b_tv_yyy_host% >> %log_file%
echo. ------------------------------------------------------------------------------ >> %log_file%
echo. FAILURE
set "modu_b_tv_yyy_status=PROBLEM"
)
ping -n %wait_for% 127.0.0.1 > nul
rem ----------------------------------------------------------------
cls
call:status_frame
call:color_frame
call:get_date
rem ----------------------------------------------------------------
echo. ENCODER-A TV YYY
ping -n %num_pings% %enco_a_tv_yyy_host% | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
echo. SUCCESS
set "enco_a_tv_yyy_status=OK"
) else (
echo. >> %log_file%
echo. ### ENCODER-A TV YYY ### >> %log_file%
echo. %date_time% >> %log_file%
echo. >> %log_file%
ping -n %reg_pings% %enco_a_tv_yyy_host% >> %log_file%
echo. ------------------------------------------------------------------------------ >> %log_file%
echo. FAILURE
set "enco_a_tv_yyy_status=PROBLEM"
)
ping -n %wait_for% 127.0.0.1 > nul
rem ----------------------------------------------------------------
cls
call:status_frame
call:color_frame
call:get_date
rem ----------------------------------------------------------------
echo. ENCODER-B TV YYY
ping -n %num_pings% %enco_b_tv_yyy_host% | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
echo. SUCCESS
set "enco_b_tv_yyy_status=OK"
) else (
echo. >> %log_file%
echo. ### IENCODER-B TV YYY ### >> %log_file%
echo. %date_time% >> %log_file%
echo. >> %log_file%
ping -n %reg_pings% %enco_b_tv_yyy_host% >> %log_file%
echo. ------------------------------------------------------------------------------ >> %log_file%
echo. FAILURE
set "enco_b_tv_yyy_status=PROBLEM"
)
ping -n %wait_for% 127.0.0.1 > nul
rem ----------------------------------------------------------------
cls
goto loop
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
:status_frame
echo. """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
echo. "___________ .__ .__ "
echo. "\_ _____/ ____ ____ ____ ____ | |__ _____ _______|__|____ "
echo. " | __)_ / \ / ___\_/ __ \ / \| | \\__ \\_ __ \ \__ \ "
echo. " | \ | \/ /_/ > ___/| | \ Y \/ __ \| | \/ |/ __ \_"
echo. "/_______ /___| /\___ / \___ >___| /___| (____ /__| |__(____ /"
echo. " \/ \//_____/ \/ \/ \/ \/ \/ "
echo. """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
echo.
echo \$\$\$\$ \$\$\$\$\$\$'
echo \$\$\$\$\.\$\$\$ \$\$\$\$\$\$\$\$.
echo \$\$\$\$\$\$'\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$
echo \$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$
echo \$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$
echo A\$\$\$\$\$\$\$\$\$....0¯)`\$\$;\$\$\$\$\$....0¯) , ,
echo \$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$L / /
echo \$\$\$\$\$\$\$\$\$\$_\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$./ /
echo \$\$\$\$\$\$\$\$\$_\$\$\$\$\$'\$\$\$\$\$\$\$\$.\$\$.\$\$\$`\$\$./
echo \$\$\$\$\$\$\$\$\$_\$\$\$\$\$\$\$'\$\$\$\$\$.\$\$\$\$.\$\$\$`\$\$---"
echo \$\$\$\$\$\$\$\$\$\$_\$\$\$\$\$\$\$\$\$\$\$\$\$\$____\$\$\$\$\$\$`
echo \$\$\$\$\$\$\$\$\$\$\$\$_\$\$\$\$\$\$\$\$\$\$\$\$\$_\$\$\$\$\$\$
echo \$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$___^| /'___^| /\$
echo \$\$\$\$\$\$\$\$\$\$\$\$\$\$_____^| /_____^| /\$
echo \$\$\$\$\$\$\$\$\$\$\$\$\$__eeee^|/____\$\$^|/
echo \$\$\$\$\$\$\$\$\$\$\$\$\$__,___,____\$\$
echo \$\$\$\$\$\$\$\$\$\$\$\$\$\$__,___,____\$\$
echo \$\$\$\$\$\$\$\$\$\$\$\$ \$\$___/^|___,__\$/^|
echo \$\$\$\$\$\$\$\$\$\$\$ \$\$_/ ^|,_____/ ^|
echo \$\$\$\$\$\$\$\$\$\$ $/ ^|_____/ ^|\$
echo E\$\$\$\$\$\$\$\$ \$\$\$\$\$\$\$\$\$\$\$\$\$
echo \$\$\$\$\$\$\$\$ \$\$\$\$\$\$\$\$\$\$X
echo.
rem ----------------------------------------------------------------
echo.-------------------------------------------------------------------------
echo.# IBUC A TV XXX: %ibuc_a_tv_xxx_status% #
echo.# IBUC B TV XXX: %ibuc_b_tv_xxx_status% #
echo.# MODULADOR A TV XXX: %modu_a_tv_xxx_status% #
echo.# MODULADOR B TV XXX: %modu_b_tv_xxx_status% #
echo.# ENCODER A TV XXX: %enco_a_tv_xxx_status% #
echo.# ENCODER B TV XXX: %enco_b_tv_xxx_status% #
echo.# #
echo.# IBUC A TV YYY : %ibuc_a_tv_yyy_status% #
echo.# IBUC B TV YYY : %ibuc_b_tv_yyy_status% #
echo.# MODULADOR A TV YYY : %modu_a_tv_yyy_status% #
echo.# MODULADOR B TV YYY : %modu_b_tv_yyy_status% #
echo.# ENCODER A TV YYY : %enco_a_tv_yyy_status% #
echo.# ENCODER B TV YYY : %enco_b_tv_yyy_status% #
echo.-------------------------------------------------------------------------
rem ----------------------------------------------------------------
exit /b
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
:color_frame
if %ibuc_a_tv_xxx_status% == PROBLEM (
color C1
) else (
if %ibuc_b_tv_xxx_status% == PROBLEM (
color C1
) else (
if %modu_a_tv_xxx_status% == PROBLEM (
color C1
) else (
if %modu_b_tv_xxx_status% == PROBLEM (
color C1
) else (
if %enco_a_tv_xxx_status% == PROBLEM (
color C1
) else (
if %enco_b_tv_xxx_status% == PROBLEM (
color C1
) else (
if %ibuc_a_tv_yyy_status% == PROBLEM (
color C1
) else (
if %ibuc_b_tv_yyy_status% == PROBLEM (
color C1
) else (
if %modu_a_tv_yyy_status% == PROBLEM (
color C1
) else (
if %modu_b_tv_yyy_status% == PROBLEM (
color C1
) else (
if %enco_a_tv_yyy_status% == PROBLEM (
color C1
) else (
if %enco_b_tv_yyy_status% == PROBLEM (
color C1
) else (
color 1F
)
)
)
)
)
)
)
)
)
)
)
)
exit /b
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
:get_date
echo.
if "%time:~0,1%" LSS "1" (
set date_time=DATA: %date:~0,2%/%date:~3,2%/20%date:~6,4% // HORA: 0%time:~1,1%h %time:~3,2%min %time:~6,2%s
) else (
set date_time=DATA: %date:~0,2%/%date:~3,2%/20%date:~6,4% // HORA: %time:~1,1%h %time:~3,2%min %time:~6,2%s
)
echo %date_time%
echo.
exit /b
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
rem OBSERVACOES:
rem
rem 06/06/2018 - Incluido todos os equipamentos das cadeias de tramissao da
rem Tv XXX e da Tv XXX.
rem Criado duas sub-rotinas: status_frame e color_frame. A
rem primeira trata os status dos equipamentos enquanto que a
rem segunda controla a cor do prompt, matendo um alerta visual.
rem Alex S. Marques.
rem
rem 07/06/2018 - Incluido a sub-rotina get_date para usar informacoes de
rem data e hora no script.
rem Atualizado modo de registro no arquivo de log e a interface
rem do programa.
rem Alex S. Marques.
rem ------------------------------------------------------------------------
Basicamente o que é feito: É criado uma lista representado uma fila circular de equipamentos. A cada minuto um equipamento desta fila é chamado e então um comando ping é enviado.
Em caso de normalidade, a tela do prompt permanece na cor azul. Em caso de problema, a tela do prompt fica vermelha, o status mostrado do equipamento muda de OK para PROBLEM e um arquivo de log é gerado.
Esse processo fica preso em Loop pela fila circular, até que o usuário encerre o programa. Abaixo segue o código usado para o script. Alguns IPs e Nomes foram ocultados por questão de segurança.
@echo off
rem ------------------------------------------------------------------------
rem Script: informa.bat
rem Objetivo: Testar a conexão de equipamentos e alertar em caso de falha.
rem Autor(es): Alex Souza Marques / Wander Correa
rem Data: 30-05-2018
rem ------------------------------------------------------------------------
title INFORMA
mode 80,60
color 1F
set "num_pings=3"
set "reg_pings=1"
set "log_file=informa.txt"
set "wait_for=10"
rem ------------------------------------------------------------------------
set "ibuc_a_tv_xxx_status=OK"
set "ibuc_b_tv_xxx_status=OK"
set "modu_a_tv_xxx_status=OK"
set "modu_b_tv_xxx_status=OK"
set "enco_a_tv_xxx_status=OK"
set "enco_b_tv_xxx_status=OK"
set "ibuc_a_tv_yyy_status=OK"
set "ibuc_b_tv_yyy_status=OK"
set "modu_a_tv_yyy_status=OK"
set "modu_b_tv_yyy_status=OK"
set "enco_a_tv_yyy_status=OK"
set "enco_b_tv_yyy_status=OK"
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
set "ibuc_a_tv_xxx_host=xxx.xxx.xxx.xxx"
set "ibuc_b_tv_xxx_host=xxx.xxx.xxx.xxx"
set "modu_a_tv_xxx_host=xxx.xxx.xxx.xxx"
set "modu_b_tv_xxx_host=xxx.xxx.xxx.xxx"
set "enco_a_tv_xxx_host=xxx.xxx.xxx.xxx"
set "enco_b_tv_xxx_host=xxx.xxx.xxx.xxx"
set "ibuc_a_tv_yyy_host=yyy.yyy.yyy.yyy"
set "ibuc_b_tv_yyy_host=yyy.yyy.yyy.yyy"
set "modu_a_tv_yyy_host=yyy.yyy.yyy.yyy"
set "modu_b_tv_yyy_host=yyy.yyy.yyy.yyy"
set "enco_a_tv_yyy_host=yyy.yyy.yyy.yyy"
set "enco_b_tv_yyy_host=yyy.yyy.yyy.yyy"
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
rem --------------------------- MAIN PROGRAM -------------------------------
rem ------------------------------------------------------------------------
:loop
call:status_frame
call:color_frame
call:get_date
rem ----------------------------------------------------------------
echo. IBUC-A TV XXX
ping -n %num_pings% %ibuc_a_tv_xxx_host% | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
echo. SUCCESS
set "ibuc_a_tv_xxx_status=OK"
) else (
echo. >> %log_file%
echo. ### IBUC-A TV XXX### >> %log_file%
echo. %date_time% >> %log_file%
echo. >> %log_file%
ping -n %reg_pings% %ibuc_a_tv_xxx_host% >> %log_file%
echo. ------------------------------------------------------------------------------ >> %log_file%
echo. FAILURE
set "ibuc_a_tv_xxx_status=PROBLEM"
)
ping -n %wait_for% 127.0.0.1 > nul
rem ----------------------------------------------------------------
cls
call:status_frame
call:color_frame
call:get_date
rem ----------------------------------------------------------------
echo. IBUC-B TV XXX
ping -n %num_pings% %ibuc_b_tv_xxx_host% | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
echo. SUCCESS
set "ibuc_b_tv_xxx_status=OK"
) else (
echo. >> %log_file%
echo. ### IBUC-B TV XXX ### >> %log_file%
echo. %date_time% >> %log_file%
echo. >> %log_file%
ping -n %reg_pings% %ibuc_b_tv_xxx_host% >> %log_file%
echo. ------------------------------------------------------------------------------ >> %log_file%
echo. FAILURE
set "ibuc_b_tv_xxx_status=PROBLEM"
)
ping -n %wait_for% 127.0.0.1 > nul
rem ----------------------------------------------------------------
cls
call:status_frame
call:color_frame
call:get_date
rem ----------------------------------------------------------------
echo. MODULADOR-A TV XXX
ping -n %num_pings% %modu_a_tv_xxx_host% | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
echo. SUCCESS
set "modu_a_tv_xxx_status=OK"
) else (
echo. >> %log_file%
echo. ### MODULADOR-A TV XXX ### >> %log_file%
echo. %date_time% >> %log_file%
echo. >> %log_file%
ping -n %reg_pings% %modu_a_tv_xxx_host% >> %log_file%
echo. ------------------------------------------------------------------------------ >> %log_file%
echo. FAILURE
set "modu_a_tv_xxx_status=PROBLEM"
)
ping -n %wait_for% 127.0.0.1 > nul
rem ----------------------------------------------------------------
cls
call:status_frame
call:color_frame
call:get_date
rem ----------------------------------------------------------------
echo. MODULADOR-B TV XXX
ping -n %num_pings% %modu_b_tv_xxx_host% | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
echo. SUCCESS
set "modu_b_tv_xxx_status=OK"
) else (
echo. >> %log_file%
echo. ### MODULADOR-B TV XXX ### >> %log_file%
echo. %date_time% >> %log_file%
echo. >> %log_file%
ping -n %reg_pings% %modu_b_tv_xxx_host% >> %log_file%
echo. ------------------------------------------------------------------------------ >> %log_file%
echo. FAILURE
set "modu_b_tv_xxx_status=PROBLEM"
)
ping -n %wait_for% 127.0.0.1 > nul
rem ----------------------------------------------------------------
cls
call:status_frame
call:color_frame
call:get_date
rem ----------------------------------------------------------------
echo. ENCODER-A TV XXX
ping -n %num_pings% %enco_a_tv_xxx_host% | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
echo. SUCCESS
set "enco_a_tv_xxx_status=OK"
) else (
echo. >> %log_file%
echo. ### ENCODER-A TV XXX ### >> %log_file%
echo. %date_time% >> %log_file%
echo. >> %log_file%
ping -n %reg_pings% %enco_a_tv_xxx_host% >> %log_file%
echo. ------------------------------------------------------------------------------ >> %log_file%
echo. FAILURE
set "enco_a_tv_xxx_status=PROBLEM"
)
ping -n %wait_for% 127.0.0.1 > nul
rem ----------------------------------------------------------------
cls
call:status_frame
call:color_frame
call:get_date
rem ----------------------------------------------------------------
echo. ENCODER-B TV XXX
ping -n %num_pings% %enco_b_tv_xxx_host% | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
echo. SUCCESS
set "enco_b_tv_xxx_status=OK"
) else (
echo. >> %log_file%
echo. ### ENCODER-B TV XXX ### >> %log_file%
echo. %date_time% >> %log_file%
echo. >> %log_file%
ping -n %reg_pings% %enco_b_tv_xxx_host% >> %log_file%
echo. ------------------------------------------------------------------------------ >> %log_file%
echo. FAILURE
set "enco_b_tv_xxx_status=PROBLEM"
)
ping -n %wait_for% 127.0.0.1 > nul
rem ----------------------------------------------------------------
cls
call:status_frame
call:color_frame
call:get_date
rem ----------------------------------------------------------------
echo. IBUC-A TV YYY
ping -n %num_pings% %ibuc_a_tv_yyy_host% | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
echo. SUCCESS
set "ibuc_a_tv_yyy_status=OK"
) else (
echo. >> %log_file%
echo. ### IBUC-A TV YYY ### >> %log_file%
echo. %date_time% >> %log_file%
echo. >> %log_file%
ping -n %reg_pings% %ibuc_a_tv_yyy_host% >> %log_file%
echo. ------------------------------------------------------------------------------ >> %log_file%
echo. FAILURE
set "ibuc_a_tv_yyy_status=PROBLEM"
)
ping -n %wait_for% 127.0.0.1 > nul
rem ----------------------------------------------------------------
cls
call:status_frame
call:color_frame
call:get_date
rem ----------------------------------------------------------------
echo. IBUC-B TV YYY
ping -n %num_pings% %ibuc_b_tv_yyy_host% | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
echo. SUCCESS
set "ibuc_b_tv_yyy_status=OK"
) else (
echo. >> %log_file%
echo. ### IBUC-B TV YYY ### >> %log_file%
echo. %date_time% >> %log_file%
echo. >> %log_file%
ping -n %reg_pings% %ibuc_b_tv_yyy_host% >> %log_file%
echo. ------------------------------------------------------------------------------ >> %log_file%
echo. FAILURE
set "ibuc_b_tv_yyy_status=PROBLEM"
)
ping -n %wait_for% 127.0.0.1 > nul
rem ----------------------------------------------------------------
cls
call:status_frame
call:color_frame
call:get_date
rem ----------------------------------------------------------------
echo. MODULADOR-A TV YYY
ping -n %num_pings% %modu_a_tv_yyy_host% | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
echo. SUCCESS
set "modu_a_tv_yyy_status=OK"
) else (
echo. >> %log_file%
echo. ### MODULADOR-A TV YYY ### >> %log_file%
echo. %date_time% >> %log_file%
echo. >> %log_file%
ping -n %reg_pings% %modu_a_tv_yyy_host% >> %log_file%
echo. ------------------------------------------------------------------------------ >> %log_file%
echo. FAILURE
set "modu_a_tv_yyy_status=PROBLEM"
)
ping -n %wait_for% 127.0.0.1 > nul
rem ----------------------------------------------------------------
cls
call:status_frame
call:color_frame
call:get_date
rem ----------------------------------------------------------------
echo. MODULADOR-B TV YYY
ping -n %num_pings% %modu_b_tv_yyy_host% | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
echo. SUCCESS
set "modu_b_tv_yyy_status=OK"
) else (
echo. >> %log_file%
echo. ### MODULADOR-B TV YYY ### >> %log_file%
echo. %date_time% >> %log_file%
echo. >> %log_file%
ping -n %reg_pings% %modu_b_tv_yyy_host% >> %log_file%
echo. ------------------------------------------------------------------------------ >> %log_file%
echo. FAILURE
set "modu_b_tv_yyy_status=PROBLEM"
)
ping -n %wait_for% 127.0.0.1 > nul
rem ----------------------------------------------------------------
cls
call:status_frame
call:color_frame
call:get_date
rem ----------------------------------------------------------------
echo. ENCODER-A TV YYY
ping -n %num_pings% %enco_a_tv_yyy_host% | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
echo. SUCCESS
set "enco_a_tv_yyy_status=OK"
) else (
echo. >> %log_file%
echo. ### ENCODER-A TV YYY ### >> %log_file%
echo. %date_time% >> %log_file%
echo. >> %log_file%
ping -n %reg_pings% %enco_a_tv_yyy_host% >> %log_file%
echo. ------------------------------------------------------------------------------ >> %log_file%
echo. FAILURE
set "enco_a_tv_yyy_status=PROBLEM"
)
ping -n %wait_for% 127.0.0.1 > nul
rem ----------------------------------------------------------------
cls
call:status_frame
call:color_frame
call:get_date
rem ----------------------------------------------------------------
echo. ENCODER-B TV YYY
ping -n %num_pings% %enco_b_tv_yyy_host% | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
echo. SUCCESS
set "enco_b_tv_yyy_status=OK"
) else (
echo. >> %log_file%
echo. ### IENCODER-B TV YYY ### >> %log_file%
echo. %date_time% >> %log_file%
echo. >> %log_file%
ping -n %reg_pings% %enco_b_tv_yyy_host% >> %log_file%
echo. ------------------------------------------------------------------------------ >> %log_file%
echo. FAILURE
set "enco_b_tv_yyy_status=PROBLEM"
)
ping -n %wait_for% 127.0.0.1 > nul
rem ----------------------------------------------------------------
cls
goto loop
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
:status_frame
echo. """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
echo. "___________ .__ .__ "
echo. "\_ _____/ ____ ____ ____ ____ | |__ _____ _______|__|____ "
echo. " | __)_ / \ / ___\_/ __ \ / \| | \\__ \\_ __ \ \__ \ "
echo. " | \ | \/ /_/ > ___/| | \ Y \/ __ \| | \/ |/ __ \_"
echo. "/_______ /___| /\___ / \___ >___| /___| (____ /__| |__(____ /"
echo. " \/ \//_____/ \/ \/ \/ \/ \/ "
echo. """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
echo.
echo \$\$\$\$ \$\$\$\$\$\$'
echo \$\$\$\$\.\$\$\$ \$\$\$\$\$\$\$\$.
echo \$\$\$\$\$\$'\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$
echo \$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$
echo \$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$
echo A\$\$\$\$\$\$\$\$\$....0¯)`\$\$;\$\$\$\$\$....0¯) , ,
echo \$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$L / /
echo \$\$\$\$\$\$\$\$\$\$_\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$./ /
echo \$\$\$\$\$\$\$\$\$_\$\$\$\$\$'\$\$\$\$\$\$\$\$.\$\$.\$\$\$`\$\$./
echo \$\$\$\$\$\$\$\$\$_\$\$\$\$\$\$\$'\$\$\$\$\$.\$\$\$\$.\$\$\$`\$\$---"
echo \$\$\$\$\$\$\$\$\$\$_\$\$\$\$\$\$\$\$\$\$\$\$\$\$____\$\$\$\$\$\$`
echo \$\$\$\$\$\$\$\$\$\$\$\$_\$\$\$\$\$\$\$\$\$\$\$\$\$_\$\$\$\$\$\$
echo \$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$___^| /'___^| /\$
echo \$\$\$\$\$\$\$\$\$\$\$\$\$\$_____^| /_____^| /\$
echo \$\$\$\$\$\$\$\$\$\$\$\$\$__eeee^|/____\$\$^|/
echo \$\$\$\$\$\$\$\$\$\$\$\$\$__,___,____\$\$
echo \$\$\$\$\$\$\$\$\$\$\$\$\$\$__,___,____\$\$
echo \$\$\$\$\$\$\$\$\$\$\$\$ \$\$___/^|___,__\$/^|
echo \$\$\$\$\$\$\$\$\$\$\$ \$\$_/ ^|,_____/ ^|
echo \$\$\$\$\$\$\$\$\$\$ $/ ^|_____/ ^|\$
echo E\$\$\$\$\$\$\$\$ \$\$\$\$\$\$\$\$\$\$\$\$\$
echo \$\$\$\$\$\$\$\$ \$\$\$\$\$\$\$\$\$\$X
echo.
rem ----------------------------------------------------------------
echo.-------------------------------------------------------------------------
echo.# IBUC A TV XXX: %ibuc_a_tv_xxx_status% #
echo.# IBUC B TV XXX: %ibuc_b_tv_xxx_status% #
echo.# MODULADOR A TV XXX: %modu_a_tv_xxx_status% #
echo.# MODULADOR B TV XXX: %modu_b_tv_xxx_status% #
echo.# ENCODER A TV XXX: %enco_a_tv_xxx_status% #
echo.# ENCODER B TV XXX: %enco_b_tv_xxx_status% #
echo.# #
echo.# IBUC A TV YYY : %ibuc_a_tv_yyy_status% #
echo.# IBUC B TV YYY : %ibuc_b_tv_yyy_status% #
echo.# MODULADOR A TV YYY : %modu_a_tv_yyy_status% #
echo.# MODULADOR B TV YYY : %modu_b_tv_yyy_status% #
echo.# ENCODER A TV YYY : %enco_a_tv_yyy_status% #
echo.# ENCODER B TV YYY : %enco_b_tv_yyy_status% #
echo.-------------------------------------------------------------------------
rem ----------------------------------------------------------------
exit /b
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
:color_frame
if %ibuc_a_tv_xxx_status% == PROBLEM (
color C1
) else (
if %ibuc_b_tv_xxx_status% == PROBLEM (
color C1
) else (
if %modu_a_tv_xxx_status% == PROBLEM (
color C1
) else (
if %modu_b_tv_xxx_status% == PROBLEM (
color C1
) else (
if %enco_a_tv_xxx_status% == PROBLEM (
color C1
) else (
if %enco_b_tv_xxx_status% == PROBLEM (
color C1
) else (
if %ibuc_a_tv_yyy_status% == PROBLEM (
color C1
) else (
if %ibuc_b_tv_yyy_status% == PROBLEM (
color C1
) else (
if %modu_a_tv_yyy_status% == PROBLEM (
color C1
) else (
if %modu_b_tv_yyy_status% == PROBLEM (
color C1
) else (
if %enco_a_tv_yyy_status% == PROBLEM (
color C1
) else (
if %enco_b_tv_yyy_status% == PROBLEM (
color C1
) else (
color 1F
)
)
)
)
)
)
)
)
)
)
)
)
exit /b
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
:get_date
echo.
if "%time:~0,1%" LSS "1" (
set date_time=DATA: %date:~0,2%/%date:~3,2%/20%date:~6,4% // HORA: 0%time:~1,1%h %time:~3,2%min %time:~6,2%s
) else (
set date_time=DATA: %date:~0,2%/%date:~3,2%/20%date:~6,4% // HORA: %time:~1,1%h %time:~3,2%min %time:~6,2%s
)
echo %date_time%
echo.
exit /b
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
rem ------------------------------------------------------------------------
rem OBSERVACOES:
rem
rem 06/06/2018 - Incluido todos os equipamentos das cadeias de tramissao da
rem Tv XXX e da Tv XXX.
rem Criado duas sub-rotinas: status_frame e color_frame. A
rem primeira trata os status dos equipamentos enquanto que a
rem segunda controla a cor do prompt, matendo um alerta visual.
rem Alex S. Marques.
rem
rem 07/06/2018 - Incluido a sub-rotina get_date para usar informacoes de
rem data e hora no script.
rem Atualizado modo de registro no arquivo de log e a interface
rem do programa.
rem Alex S. Marques.
rem ------------------------------------------------------------------------
Algumas limitações impediram o encurtamento do script devido a limitações do PC que ele roda. Mas ele foi testado nos Windows XP, 7, 8 e 10, não apresentado problemas. Atualmente está rodando por quase 20 dias sem apresentar problemas.
Futuramente pretendo adicionar um beep para que o alarme seja visual e sonoro e também adicionar o envio automatizado de e-mail, coisa já está na fase de testes.
Algumas opções de personalização foram encontrados na internet como a pantera
O código informado irá produzir a seguinte interface:
Interface esta que fica vermelha em caso de problema.
Uma Central Técnica pode ser responsável pelo monitoramento e controle de uma quantidade gigantesca de equipamentos. Com esse projeto pode-se reunir a monitoração de vários equipamentos em uma única janela.
Nem todo tipo de problema será identificado dessa forma, mas se alguma falha no equipamento o fizer perder conexão, como já aconteceu no IBUC-B do meu trabalho, onde uma falha o fez desligar, o tempo de resposta para uma ação preventiva poderá ser consideravelmente encurtado.
Atualizações no projeto serão postadas sempre que possível.
Comentários
Postar um comentário