De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
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.
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