+ Responder ao Tópico



  1. #1
    davi
    Visitante

    Padrão Como capturar o status de qualquer comando automaticamente?

    Olá Pessoal...

    Meu crontab está programado para executar todo minuto centenas de monitorações do MRTG.
    Acontece que temos algum problema na rede interna que de vez em quando o MRTG não enxerga ninguém por alguns minutos, o suficiente para que os processos Perl encham a memória de tal forma que nada mais é possível fazer a não ser resetar o pobre micro.

    Eu estou procurando uma forma de testar a conexão antes de mandar o MRTG executar cegamente.

    Uma delas seria mandar apenas um comando snmpget para o destino a monitorar; aí eu só mando executar o comando MRTG se a resposta for positiva.

    Mas aí é que esta: como saber que a resposta foi ou não positiva automaticamente? Existe alguma variável de ambiente que me retorne um status do comando? Existe alguma sintaxe de comando que ao inves de me retornar o resultado em si, me retorna um status (tipo 1 ou 0)?

    Para ilustrar, meu servidor MRTG é um Athlon 1300, 512 Mb RAM, 20 Gb HD, RedHat 7.2.

    Abraços!!!

  2. #2
    fricardo
    Visitante

    Padrão Como capturar o status de qualquer comando automaticamente?

    Vc faz isto pelo valor de retorno da função q vc tá usando. Vc pode testar o retorno pra condição q vc quer. Veja se a página abaixo tem o q vc precisa:

    http://www.mkssoftware.com/docs/man1/snmpget.1.asp
    http://dbserv.jinr.ru/js/content/php...n.snmpget.html

    fricardo



  3. #3
    davi
    Visitante

    Padrão Como capturar o status de qualquer comando automaticamente?

    Não consegui...

    ainda tentei o seguinte:

    #!/bin/sh


    #tenta ler a mib da cpu
    snmpget -t 1 -r 1 -O q loopgerpu my_community .1.3.6.1.4.1.9.9.109.1.1.1.1.4.1 &

    # Run target file if no errors and ...

    if [ $? -eq 0 ]
    then
    echo RODAR MRTG PIAUI
    fi

    ----------------------------------------------

    Eu troquei o nome da interface loopback de propósito, é loopgerpi a verdadeira.
    Mas mesmo assim, me vem a msg pra rodar o mrtg. O q significa q o comando snmpget me da status 0 mesmo não conseguindo... E agora?

  4. #4
    davi
    Visitante

    Padrão Como capturar o status de qualquer comando automaticamente?

    PARA FICAR REGISTRADO - HOW TO!!!
    ############################
    #!/bin/sh

    comando='snmpget IP_ROUTER COMMUNITY .1.3.6.1.4.1.9.9.109.1.1.1.1.4.1'

    $comando

    if [ $? -eq 0 ]
    then
    echo 'RODAR MRTG - retorno=' $?
    else
    echo NAO RODAR MRTG
    fi
    ######################
    FONTE: http://www.tinker.ncsu.edu/LEGO/shell_help.html