detetar baixo trafego internet

Iniciado por geraldocg, 23 de Março de 2016, 19:28

tópico anterior - próximo tópico

geraldocg

Oi,
Escuto com  uma rádio na internet, mas  após tocar uma meia hora,  a música para e aparece uma janela para fazer um upgrade  e não dar mais interrupções (é pago). Se clicar no  X que fecha a janela do upgrade, continua a tocar.
No windows  tem  um medidor de tráfego, o Networx, que permite ajustar um limiar de velocidade de download, abaixo da qual um programa (a escolher) é iniciado. Eu gravava o vídeo de uma  câmara de vídeo ao vivo, que após um tempo travava e tinha que clicar no meio da tela para continuar. Fiz um  programa  em Delphi que simula o clique do mouse em qualquer ponto da tela. Quando a velocidade ficava baixa o Networx iniciava o programa e a câmara destravava.
Quero fazer no  Ubuntu algo semelhante (simular clique do mouse) e  tentei rodar o Networx  com o Wine mas deu pau. Não encontrei nenhum equivalente para Ubuntu.
Outra opção seria de dentro de um script fazer um loop medindo a velocidade (não sei qual  comando usar para medir e colocar a velocidade em uma variável), e  quando esta fosse menor que um certo valor,  o xdotool seria chamado para simular o clique do mouse. Esse seria um aplicativo de sessão, e quando não estivesse na rádio, eu o interromperia.
Alguma dica de programa equivalente ao Netwoxr em relação ao limiar de velocidade e chamar um programa, ou que comando dar para medir a velocidade de download?
Grato por qualquer ajuda.
Geraldo

Tota


irtigor

O que não falta é programa de monitorar trafego no linux. Eu provavelmente executaria o programa em um network namespace exclusivo e usaria um dos milhares de programas que mostram o tráfego por interface (ifconfig, ip, netstat, olhar diretamente no /sys...).

geraldocg

Obrigado pela  dicas.
Tota, o Networkx é (em uma análise não profunda -não sou capaz disso) para traçar diagramas de rede.
Irtigor, realmente não falta. Mas não encontrei um como o Networx do windows. Por isso tive que fazer o seguinte, que resolveu:
Instalei o xdotool que permite achar coordenada na tela e também simular clique do mouse em um pt da tela.
Instalei o bwm-ng que dá uma saída simples.
Fiz um script para cuidar do assunto. Coloquei-o como um aplicativo de seção.
Vou mostrar o script pois alguém  talvez possa aproveitar:

#!/bin/sh
sleep 240 # esperar "estabilizar"
while true; do
sleep 60  # melhor valores maiores?
a=4   # valor taxa rx está na linha 4 da saída do bwm-ng
bwm-ng -I wlan0 -o plain -c 1 > bites.txt
while [ "$a" -gt 0 ]; do
read line
a=$(($a - 1))
if [ "$a" -eq 0 ]; then # chegou na linha 4
# line=${line:27:5} # não funciona, seria mais direto mas dá erro
  line=${line#*wlan0:}  # eliminar do inicio linha até wlan0:
  line=${line%%KB/s*}   # eliminar do primeiro KB/s até o fim da linha
  line=${line%%.*}      #tirar decimais
# echo $line    # pra teste
  if [ $line -lt 2 ]; then # taxa <2 KB/s; normal é > 4
     sleep 2 # cautela (?)
#   xdotool mousemove 0 0 click 1   # clique no X janela1  # a achar as coordenadas x,y
     sleep 0.5
     xdotool mousemove 873 253 click 1  # clique no X janela2
     sleep 0.5
     xdotool mousemove 308 349 click 1  # clique no botão play
     sleep 0.5
     xdotool mousemove 873 253 # pra não ficar o mouse no botão play
  fi
fi
done < bites.txt
done
exit 0   

Ainda não tive a oportunidade de pegar as coordenadas da janela1 (tá tocando há mais de uma hora e ainda não apareceu),  mas botei o script para rodar e dei um pause no player da rádio (KB/s ficou zero) e após 1 minuto +-  o script deu um clique no play: funcionou.

Para achar as coordenada dos pontos usei script (copiado de site?? )  que fica dando continuamente as coordenadas do mouse em janela de terminal:

#!/bin/sh
# dá continuamente as  coord de do cursor do mouse na tela 
while true; do
clear
xdotool getmouselocation
sleep 0.3
done
exit 0     

Acho que me  estendi muito.
Obrigado pelas dicas, e por terem o trabalho de me responder,
Geraldo