Desconexão automática da WLAN se não for usada

3

Para o Nokia N900 existe um aplicativo chamado AutoDisconnect que monitora o uso da WLAN e fecha a conexão se o tráfego for muito baixo.

Gostaria de ter algo assim em meu futuro notebook para economizar bateria, ou seja, desativar automaticamente a WLAN quando não for necessário. Existe alguma solução para conseguir isso no Linux? Estou planejando usar o Linux Mint como a distro da minha escolha.

    
por marmistrz 25.05.2015 / 12:29

1 resposta

2

Você pode usar alguma ferramenta de monitoramento de largura de banda, como vnstat , para isso. Para instalá-lo no Linux Mint, faça:

sudo apt-get install vnstat

Em seguida, você pode monitorar a velocidade média de sua conexão em um determinado período e, se a velocidade for menor do que alguns limites específicos, desligue sua WLAN.

Então, digamos que você queira desativar sua WLAN se a taxa média de download cair abaixo de 5 KB/s em um tempo de monitoramento de 30 segundos, então seu código será:

#!/bin/bash

#Taking sudo power initially because it will be required later on
sudo echo "Starting AutoDisconnect"

while true
do
  downSpeed=$(vnstat -ru 0 -tr 30 -i wlan0 | grep rx | grep -oP "\d+\.\d+")
  if (( $(echo "$downSpeed < 5.0" | bc -l) ))
  then
    sudo ifconfig wlan0 down
    exit  #exit now because we don't need monitoring since the interface is down
  fi
done

Explicação de bits importantes

-ru 0      ==> to show the rate in bytes/s (use "1" for bits/s)
-tr 30     ==> take average over 30 seconds usage
-i wlan0   ==> 'vnstat' defaults to eth0 on my computer (marmistrz)
bc -l      ==> used in bash for doing arithmetic

grep rx             ==> considering only the receiving rate (i.e. download rate)
grep -oP "\d+\.\d+" ==> strip out the download rate from the output
    
por 25.05.2015 / 13:38