você está aqui: Home  → Arquivo de Mensagens Programação Shell Linux: Inscrições Abertas

Logando o tráfego 3G

Colaboração: Bruno Buys

Data de Publicação: 25 de Novembro de 2009

Se você assina um serviço 3G com tráfego limitado, pode ser uma boa idéia logar o seu tráfego. Quando a sua navegação mensal estoura a franquia, a cobrança é por byte adicional, e sai beeem caro.

Se você usa o wvdial para se conectar, pode usar este script para logar seu tráfego. Quando rodado, o script desconecta o modem, mas antes, recolhe a informação do volume de tráfego da interface e salva em um arquivo texto.

Uso

Faça a conexão 3G:

$ wvdial

ou

$ wvdial &

Desconecte:

$ loga3g

Se o seu usuário pode discar com o wvdial (sem precisar ser root ou usar o sudo), então você pode rodar esse script com o mesmo usuário. Se o seu sistema exige que seja rodado pelo root, então você deve rodar essse script também como root.

O arquivo-texto de log criado vai ter linhas assim:

20091110 - 12:34 - 13:25 - RX bytes:18160923 (17.3 MiB) TX bytes:2087947 (1.9 MiB)

Quanto às unidades de bytes usadas, pode haver alguma confusão. No meu sistema (Debian Lenny), o ifconfig mostra unidades em kibibytes e mebibytes, que são baseadas em potências de 2 (p.ex., 1MiB = 1024KiB). Os tradicionais kilobytes e megabytes acabam tendo uma interpretação mais ambígua, porque muita gente usa para se referir à potências de 10 (p.ex., 1MB = 1000KB). Se a sua operadora dá um valor de franquia baseado em MB, é necessário fazer a conversão.

Veja mais detalhes sobre isso em http://en.wikipedia.org/wiki/Byte#Unit_symbol_or_abbreviation

#!/bin/bash

# loga3g - brunobuys, 20091121
# Salva a informação do volume de tráfego 3G, antes de interromper o wvdial.

/sbin/ifconfig ppp0 1>/dev/null 2>/dev/null

if [ $? -ne 0 ] ; then

      echo "Não há ppp rodando. Tem certeza que está conectado via 3G?"
      exit 1
fi

PIDWVDIAL=`pidof /usr/bin/wvdial`

HORAINICIOPPP=`ps aux | grep "$PIDWVDIAL".*wvdial$ | grep -o [0-9][0-9]\:[0-9][0-9]`

TRAFEGO=`/sbin/ifconfig ppp0 | grep -o "RX byte.*)"`

DIA=`date +%d`
MES=`date +%m`
ANO=`date +%Y`

echo """$ANO""$MES""$DIA"" - "$HORAINICIOPPP" - "`date +%H\:%M`" - "$TRAFEGO"" >> ~/3g.log

kill $PIDWVDIAL


Veja a relação completa dos artigos de Bruno Buys