+ Responder ao Tópico



  1. #1
    Moderador Avatar de Bruno
    Ingresso
    Nov 2002
    Localização
    Guarapuava-PR
    Posts
    4.181
    Posts de Blog
    1

    Padrão Script para Monitorar Sinal de Clientes em HTML, sem precisar de SNMP! Continuação

    Bom pessoal apos olhar o post do amigo Kadango

    resolvi olhar o scrip e um amigo tb disse ter resolvido os bugs
    mais testando naum deu certo entao peguei a versao original e fiz umas mudanças
    no meu caso eu fiz cada script para cada interface para poder separar entao segue o scritp em anexo

    a tb fiz o gerador do arquivo sinal.txt por ssh mais tb pode ser feito direto no mk

    porem para naum ficar enxendo o mk de regras faço direto no servidor com ssh
    segue o post original

    https://under-linux.org/f143/script-...e-snmp-113071/


    Código :
    #!/bin/bash
    # ZERA TODAS A VARIAVES E ARQUIVOS
    ARQUIVO=0
    ARQUIVO=0
    FTP_HOST=0
    FTP_USER=0
    FTP_PASS=0
    NOMEAP=0
    PAGINA=0
    PASTAFILES=0
    PASTAPAGINA=0
    ACK_ALARME="50"                                                     # DEFINE VALOR MINIMO PARA O ACK
    SNR_ALARME="30"                                                     # DEFINE VALOR MINIMO PARA SNR
    SINAL_ALARME="75"
    ARQUIVO="sinal.txt"                                                 # NOME DO ARQUIVO SINAL DO MIKROTIK
    FTP_HOST="10.20.30.2"                                                 # IP DO MIKROTIK
    FTP_USER="pegasinal"                                                    # USUARIO DO FTP  DO MIKROTIK
    FTP_PASS="1"                                              # SENHA DO FTP DO MIKROTIK
    SSID="Foxbyte1"                                                  # NOME DO AP
    PAGINA="/htdocs/sinal.php"                                           # NOME DO ARQUIVO PAGINA HTML
    PASTAFILES="/sinal_tmp/"                                    # PASTA DE ARMAZENAMENTO LOCAL
    cd $PASTAFILES
    # ZERA ARQUIVOS
    rm $PASTAFILES/*
    rm $PAGINA
    # ROTINA FTP DE DOWNLOAD DO  ARQUIVO (SINAL.TX) DO MIKROTIK
    cd $PASTAFILES
    ssh root@$FTP_HOST "/interface wireless registration-table print stats file=sinal where interface=$SSID"
    ftp -in $FTP_HOST << fim
                       user $FTP_USER $FTP_PASS
                       get $ARQUIVO
                       bye
                       EOF
    fim
     
     
     
     # ROTINA DE TRATAMENTO DO ARQUIVO PRA GERACAO DO HTML
     cat sinal.txt | grep ";;; " | cut -f1 | awk {'print "="$3'} > sinalusuario
     cat sinal.txt | fmt -w 1 | grep rx-rate > sinalrx
     cat sinal.txt | fmt -w 1 | grep tx-rate > sinaltx
     cat sinal.txt | fmt -w 1 | grep uptime > sinaluptime
     cat sinal.txt | fmt -w 1 | grep last-activity > sinallast
     cat sinal.txt | fmt -w 1 | grep signal-strength > sinalstrength
     cat sinal.txt | fmt -w 1 | grep signal-to-noise > sinalnoise
     cat sinal.txt | fmt -w 1 | grep tx-ccq > sinaltxccq
     cat sinal.txt | fmt -w 1 | grep last-activity > sinaltrough
     cat sinal.txt | fmt -w 1 | grep ack-timeout > sinalack
     cat sinal.txt | fmt -w 1 | grep distance > sinaldistance
     paste sinalstrength sinalusuario sinalrx sinaltx sinalnoise sinaltxccq sinaltrough sinalack sinaldistance sinaluptime > sinal2.txt
     cat sinal2.txt | sed -e 's/rx-rate/RX/g' | sed -e 's/tx-rate/TX/g' | sed -e 's/uptime/Associado/g' | sed -e 's/signal-strength/sinal/g' | sed -e 's/signal-to-noise/Rel Sinal Ruído/g' | sed -e 's/ack-timeout/ACK/g' | sed -e 's/distance/Distancia/g' | sort -n > sinal3.txt
     cat sinal3.txt | sed 's/[\x09]//g' | sed 's/ /=/g' > sinal4.txt
     TOTAL=`cat $PASTAFILES/sinal4.txt | wc -l`
     
     # ROTINA DE GERACAO DO ARQUIVO HTML BASE
     echo \ "<br>                                                                                                                   " >> $PAGINA
      echo \ "<table width='1000' border='0' cellspacing=0  cellpadding='0'>                                                                          " >> $PAGINA
     echo \ "  <tr>                                                                                                    " >> $PAGINA
     echo \ "    <td width='1000'  class=ti><img src='img_all/remote.png'>$SSID</td>                                    " >> $PAGINA
     echo \ "  </tr>                                                                                                                  " >> $PAGINA
     echo \ "</table>                                                                                                                       " >> $PAGINA
     
     
     echo \ "<table width='1000' cellspacing=0 cellpadding=0>                                                                          " >> $PAGINA
     echo \ "  <tr>                                                                                                    " >> $PAGINA
     echo \ "    <td width='10%' bgcolor='#084FBA' class=de>Usu&aacute;rio</td>                                    " >> $PAGINA
     echo \ "    <td width='10%' bgcolor='#084FBA' class=de>TX</td>                                                 " >> $PAGINA
     echo \ "    <td width='10%' bgcolor='#084FBA' class=de>RX</td>                                                 " >> $PAGINA
     echo \ "    <td width='10%' bgcolor='#084FBA' class=de>Uptime</td>                                             " >> $PAGINA
     echo \ "    <td width='6%' bgcolor='#084FBA' class=de>ACK</td>                                                " >> $PAGINA
     echo \ "    <td width='6%' bgcolor='#084FBA' class=de>CCQ</td>                                             " >> $PAGINA
     echo \ "    <td width='6%' bgcolor='#084FBA' class=de>SNR</td>                                               " >> $PAGINA
     echo \ "    <td width='60%' bgcolor='#084FBA' class=de>Sinal</td>                                             " >> $PAGINA
     echo \ "  </tr>                                                                                                                  " >> $PAGINA
     
     # ROTINA DE ORGANIZACAO DOS DADOS
    class='result1' 
     
    for i in `cat $PASTAFILES/sinal4.txt`; do
     USUARIO=`echo $i | cut -d "=" -f6`
     TX=`echo $i | cut -d "=" -f14 |cut -d "\"" -f2`
     RX=`echo $i | cut -d "=" -f10 |cut -d "\"" -f2`
     PING=`echo $i | cut -d "=" -f28`
     UPTIME=`echo $i | cut -d "=" -f36`
     ACK=`echo $i | cut -d "=" -f32`
     TXCCQ=`echo $i | cut -d "=" -f24`
     SNR=`echo $i | cut -d "=" -f20 | sed 's/dB//g'`
     SINAL=`echo $i | cut -d "=" -f5 |cut -d "@" -f1`
     SNRGRAFICO=`expr $SNR \* 5`
     ALARME=`echo $i | cut -d "=" -f5 |cut -d "@" -f1 |cut -d "-" -f2 |cut -d "d" -f1` 
     # ROTINA DE VERIFICACAO DE SNR E ACK PARA ALARME VISUAL
     if [ $SNR -lt $SNR_ALARME ]
     then
        GRAFICO3='pixelvermelho.png'
     else
        GRAFICO3='pixelverde.png'
     fi
     
     if [ $ALARME -gt $SINAL_ALARME ]
     then
        GRAFICO='pixelvermelho.png'
     else
        GRAFICO='pixelverde.png'
     fi
     
     
     
     if [ $ACK -gt $ACK_ALARME ]
     then
        GRAFICO2='pixelvermelho.png'
     else
        GRAFICO2='pixelverde.png'
     fi
     
     
     # ROTINA DE INSERCAO DE DADOS NO HTML
     echo \ "  <tr>                                                                                                                          " >> $PAGINA
     echo \ "    <td class=$class>"$USUARIO"</td>                                                                             " >> $PAGINA
     echo \ "    <td class=$class>"$TX"</td>                                                                                  " >> $PAGINA
     echo \ "    <td class=$class>"$RX"</td>                                                                                  " >> $PAGINA
     echo \ "    <td class=$class>"$UPTIME"</td>                                                                              " >> $PAGINA
     echo \ "    <td class=$class>"$ACK "<img src='img_all/"$GRAFICO2"' height='10px' width='10'></td>  " >> $PAGINA
     echo \ "    <td class=$class>"$TXCCQ"</td>                                                                               " >> $PAGINA
     echo \ "    <td class=$class>"$SNR"<img src='img_all/"$GRAFICO3"' height='10px' width='10'></td> </td>                      " >> $PAGINA
     echo \ "    <td class=$class><img src='img_all/"$GRAFICO"' height='10px' width='"$SNRGRAFICO"'>$SINAL</td>" >> $PAGINA
     echo \ "  </tr>                                                                                                                         " >> $PAGINA
    if [ $class ==  "result1" ]
     then
        class='result2'
     else
        class='result1'
     fi
     
     
    done
     echo \ "                                                                                                                                " >> $PAGINA
     echo \ "</table>                                                                                                                        " >> $PAGINA
      echo \ "<table width='1000' border='0' cellpadding='0' cellspacing=0>                                                                          " >> $PAGINA
     echo \ "  <tr>                                                                                                   " >> $PAGINA
     echo \ "    <td width='1000' bgcolor='#084FBA' class=de>Total de Cliente(s) Conectado(s): "$TOTAL"</td>                                    " >> $PAGINA
     echo \ "  </tr>                                                                                                                  " >> $PAGINA
     echo \ "</table>                                                                                                                       " >> $PAGINA
     
     # COPIANDO HTML DO ARQUIVO LOCAL PARA PASTA DO SERVIDOR WEB
     cd $PASTAFILES
    # cp $PAGINA $PASTAPAGINA

  2. #2
    Moderador Avatar de Bruno
    Ingresso
    Nov 2002
    Localização
    Guarapuava-PR
    Posts
    4.181
    Posts de Blog
    1

    Padrão Re: Script para Monitorar Sinal de Clientes em HTML, sem precisar de SNMP! Continuação

    lembrando que os erros tais como

    Código :
    expr: erro de sintaxe
     line 113: [: -lt: unary operator expected
     line 120: [: -gt: unary operator expected

    sao erros devido a tabela de registro naum ter o comment no mk

    pois como o script trabalha com o CUT ai da falha no seguimento mesmo

    então como o autor do script falou todos os registro no mk devem conter o campo comment

  3. #3

    Padrão Re: Script para Monitorar Sinal de Clientes em HTML, sem precisar de SNMP! Continuação

    Ola pessoal, sou meio leigo no linux, mas ja instalei um XAMPP com apache e testei um site qquer ok, porem qdo jogo esse script la nao faz nada !! aparece codigos e + codigos, nada da area grafica da web, ja editei as configuracoes nescessarias e nadaaaa,,tambem tentei pela iso da mk-auth e nada nao consegui rodar , me deem uma LUZ !!!!!!

  4. #4

    Padrão Re: Script para Monitorar Sinal de Clientes em HTML, sem precisar de SNMP! Continuação

    Boa nooite, não funcionou, ela baixa o arquivo mais nao gera o resto somente o html. tem algo que possa ser feito ? obrigado !