#!/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á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