none
Script para ler uma mensagem em um arquivo. RRS feed

  • Pergunta

  • Prezados,

    preciso de um script que leia um log em 'C:\temp\errlog.log'.

    Se neste arquivo aparecer a mensagem "server has exceeded max outbound connections" deve ter uma saída IGUAL a 1, para CRITICAL. Senão = 0, ou seja, Status OK.

    Isso é para o monitoramento feito pelo Nagios.
    0=OK no errors
    1=CRITICAL "server has exceeded max outbound connections"

    Obrigado.

    quinta-feira, 25 de outubro de 2012 16:41

Respostas

  • Não sei como o Nagios pega a saída, mas veja se isto ajuda:

    .BAT

    @ECHO OFF
    SET ARQUIVO_LOG=c:\temp\errlogo.log
    
    find /i "server has exceeded max outbound connections" "%ARQUIVO_LOG%" >NUL
    IF %ERRORLEVEL% == 0 (ECHO 1) ELSE (echo 0)


    Fábio de Paula Junior

    quinta-feira, 25 de outubro de 2012 17:43
    Moderador

Todas as Respostas

  • Não sei como o Nagios pega a saída, mas veja se isto ajuda:

    .BAT

    @ECHO OFF
    SET ARQUIVO_LOG=c:\temp\errlogo.log
    
    find /i "server has exceeded max outbound connections" "%ARQUIVO_LOG%" >NUL
    IF %ERRORLEVEL% == 0 (ECHO 1) ELSE (echo 0)


    Fábio de Paula Junior

    quinta-feira, 25 de outubro de 2012 17:43
    Moderador
  • Caso o Nagios trabalhe com EXIT CODES, tente alterar a última linha assim:

    IF %ERRORLEVEL% == 0 (exit 1) ELSE (exit 0)

    ou

    IF %ERRORLEVEL% == 0 (exit /b 1) ELSE (exit /b 0)


    Fábio de Paula Junior


    quinta-feira, 25 de outubro de 2012 17:55
    Moderador
  • Caro Fabio,

    obrigado pela resposta, acho que estou próximo.

    Ele lê o arquivo, mas diz que não existe a string "server has exceeded max outbound connections"

    porém no arquivo existe sim este erro.

    O que será que está acontecendo?

    OBS: Caso queira colocar o log em Program Files, é necessário colocar todo o caminho em aspa dupla? ex: "c:\program files\banco\errlog.log"


    quinta-feira, 25 de outubro de 2012 22:29
  • Não precisa colocar entre aspas, quando executo o comando eu coloco a variavel entre aspas.

    @ECHO OFF
    SET ARQUIVO_LOG=%programfiles%\banco\errlog.log
    
    find /i "server has exceeded max outbound connections" "%ARQUIVO_LOG%" >NUL
    IF %ERRORLEVEL% == 0 (ECHO 1) ELSE (echo 0)

    Tente executar apenas o comando abaixo em um prompt de comando pra ver o que aconte:

    find /i "server has exceeded max outbound connections" "c:\program files\banco\errlog.log" 



    Fábio de Paula Junior

    quinta-feira, 25 de outubro de 2012 23:07
    Moderador
  • resolvido?

    Fábio de Paula Junior

    sábado, 27 de outubro de 2012 19:41
    Moderador