Gráfico de banda só com texto
Publicado por Rômulo Torres Silva 21/06/2008
[ Hits: 7.178 ]
Homepage: pankdo.equipesound.com
Após ler um artigo sobre monitoramento de banda em tempo real aqui mesmo no VOL.
Utilizando o phplot o qual precisa de php4 tentei implementar mas foi complicando muito. Então tive essa idéia que é muito simples e rápida e não exige demais configurações, apenas é necessário o apache com suporte a cgi-bin.
Com essa idéia é possível gerar inúmeros gráficos sem a utilização de linguagens avançadas ou programas específicos. O segredo é o caracter "█" que é uma espécie de retângulo.
#!/bin/bash
maxup=120000
maxdown=150000
band1=$(cat /proc/net/dev | grep eth0 | cut -d: -f2 | awk '{print $1}')
sleep 1
band2=$(cat /proc/net/dev | grep eth0 | cut -d: -f2 | awk '{print $1}')
$((down = band2 - band1))
band1=$(cat /proc/net/dev | grep eth0 | cut -d: -f2 | awk '{print $9}')
sleep 1
band2=$(cat /proc/net/dev | grep eth0 | cut -d: -f2 | awk '{print $9}')
$((up = band2 - band1))
#calculando a percentagem
precdown=$(((100*down)/maxdown))
precup=$(((100*up)/maxup))
echo "content-type: text/html"
echo
echo
echo "
<html> <head> <title> GRAFICO DE USO DE BANDA </title> </head>
<body>
"
echo "<h2>GRAFICO DE BANDA ETH0</h2>"
echo "<pre>"
echo "$(cat /proc/net/dev)"
echo "</pre>"
echo "<b>"
echo "<br>down: $down bytes por segundo"
echo "<br>up: $up bytes por segundo"
echo "</b>"
echo "<br>"
n=0
corr=50
corb=250
corg=120
echo "<br><b>banda down:</b><br>"
while [ $n -le $precdown ] ; do
$((corr = corr + 2 ))
$((corb = corb - 2 ))
$((corg = corg - 1 ))
red=$(echo " ibase=10 ; obase=16; $corr" | bc )
blue=$(echo " ibase=10 ; obase=16; $corb" | bc )
gren=$(echo " ibase=10 ; obase=16; $corg" | bc )
echo -e -n "<font color=\"${red}${gren}${blue}\">█</font>"
$((n = n + 1))
done
echo "$precdown%"
n=0
corr=50
corb=250
corg=120
echo "<br><b>banda UP:</b><br>"
while [ $n -le $precup ] ; do
$((corr = corr + 2 ))
$((corb = corb - 2 ))
$((corg = corg - 1 ))
red=$(echo " ibase=10 ; obase=16; $corr" | bc )
blue=$(echo " ibase=10 ; obase=16; $corb" | bc )
gren=$(echo " ibase=10 ; obase=16; $corg" | bc )
echo -e -n "<font color=\"${red}${gren}${blue}\">█</font>"
$((n = n + 1))
done
echo "$precup%"
echo "<br><br><br><br>considerando 100%=$maxdown Bps para down <br> e 100%=$maxup Bps para up <br> levar em consideracao o trafego para a aquisicao desta pagina"
echo "</body>"
echo "</html>"
JSOO - Classe para manipular Querystring
Assinatura nas postagens no Viva o Linux
Gerador de números para Mega-Sena
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como implementar Raid (0, 1, 5, 6, 10 e 50)
fusermount3 no Ubuntu 25.10 - mantenha o perfil do AppArmor
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Criação de diretórios e aplicação de restrições de acesso no Linux
Como programar um sistema de controle para distribuições linux em c? (1)
Compartilhar ZEBRA ZD220 na rede (2)
Como programar um software que seja utilizado para coleta de dados em ... (1)









