Estatística dos MB's consumidos pela internet

Publicado por Ricardo Sabaliauskas (última atualização em 04/03/2010)

[ Hits: 5.802 ]

Download estatisticas_ppp.tar.gz




Como eu, atualmente muitos usuários do Linux usam planos internet celular limitado. Quando este é o caso, existe a necessidade de você estar ciente do consumo de seu trafego de dados, porém, até onde sei, as operadoras não fornecem este serviço e eu não conheço outra alternativa. Estou desenvolvendo este script para solucionar este problema e em meu computador já está em ação e estou satisfeito com ele.

Com o download você baixará um arquivo compactado. Descompactando-o, você terá um diretório chamado 'estatisticas_ppp', incluindo em seu interior o script 'status_ppp' e o aruivo texto 'LEIA-ME'.

Abaixo o arquivo LEIA-ME:

########## ---------------------------------
##########  AJUDA PARA O SCRIPT STATUS_PPP
########## ---------------------------------


Versão:
   00_fevereiro_2010


Autor:
   Ricardo Sabaliauskas


Índice:

   1) LICENCIAMENTO E TERMOS PARA USO

   2) OBJETIVO DESTE SCRIPT

   3) DEPENDÊNCIAS

   4) DICA DE CONFIGURAÇÕES EXTERNAS

   5) DICA DE CONFIGURAÇÕES INTERNA

   6) DICAS DE USO



##### -------------------------------------
#####  01) LICENCIAMENTO E TERMOS PARA USO
##### -------------------------------------

   CABE SOMENTE AO SR., USUÁRIO, A RESPONSABILIDADE POR QUAISQUER
   PREJUÍZOS DECORRIDOS PELO USO DESTE SCRIPT.

   Caso não concorde com isto, não use este script

   Este script esta licenciado conforme a licença GLP.



##### --------------------------
#####  2) OBJETIVO DESTE SCRIPT
##### --------------------------

   Facilitar a conexão da internet através do seu modem celular
   e permitir o controle do tráfego, somando os MB's recebido e os
   envidados e exibindo-os em uma mensagem com o seguinte conteúdo:
      1) Quantidade de MB's acessado no dia (no dia atual)
      2) Média de MB's por dia. (média do mês presente)
      3) MB's totais. (mês presente)



##### ------------------
#####  3) DEPENDÊNCIAS
##### ------------------

   Para que este script funcione conforme o planejado é necessário
   a instalação dos seguintes programas, como dependências
   para dele:
      1) wvdial (com a correta configuração do arquivo
      "/etc/wvdial.conf" conforme a operadora
      de internet celular usada (TIM, CLARO, VIVO...).
      2) konsole.
      3) dialog.



##### ------------------------------------
#####  4) DICA DE CONFIGURAÇÕES EXTERNAS
##### -------------------------------------

   Conforme opção "1)" do título 'DEPENDÊNCIAS', é necessário
   configurar o arquivo "/etc/wvdial.conf" conforme a operadora
   que você estiver utilizando. Apenas como exemplo estou citando
   a minha própria configuração deste arquivo. Meu modem de
   acesso é o "Modem USB Nokia CS-10" e minha operadora é a
   "CLARO", então, a minha configuração para este arquivo
   "/etc/wvdial.conf" ficou assim:

      [Dialer Defaults]
      Carrier Check = off
      Init1 = ATZ
      Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
      Password = claro
      Ask Password = 0
      Check Def Route = 1
      Phone = *99***1#
      Idle Seconds = 0
      Modem Type = Analog Modem
      Stupid Mode = 1
      Compuserve = 0
      Baud = 460800
      Auto DNS = off
      Dial Command = ATDT
      Modem = /dev/ttyACM1
      ISDN = 0
      Username = claro


      [Dialer claro3g]
      Stupid Mode = on
      Password = claro
      Auto Reconnect = off
      Username = claro
      Phone = *99***1#



   A opção "3)" do título 'DEPENDÊNCIAS' se refere ao programa
   chamado "dialog". O uso deste programa tem por objetivo fazer
   com que apareça uma caixa gráfica com as mensagens mostrando
   informações dos MB's trafegados ao encerrar o script. Embora
   não fosse a minha intenção inicial, utiliza-lo é útil também
   como aviso de que a internet caiu e é necessário reexecutar o
   script novamente. Caso não queira utiliza-lo comente o começo
   da linha (ou seja, coloque um '#' -sustenido- no começo dela)
   com os dizeres 'aviso_grafico'.

   Em alguns sistemas Linux, devidos as suas configurações
   defaults, como o Debian Linux Lenny por exemplo, esta caixa
   gráfica não aparecerá mesmo que o 'dialog' esteja devidamente
   instalado. Isto ocorrerá porque o usuário 'root' destes sistemas
   não têm permissão para executar programas gráficos. Se você
   não sabe se o sistema Linux que você está usando agora se
   enquadra no tipo citado acima, então faça um teste. Abra o
   terminal, logue-se como usuário 'root' e depois 'chame' um
   programa gráfico por este terminal. Exemplo:

      debian@debian:~$ su
      Senha:
      debian:/home/debian# kate

      NOTE: neste exemplo eu 'chamei' o programa chamado 'kate'
      pelo terminal. Para este teste ser válido é necessário
      que o programa 'kate' esteja instalado no seu sistema
      Linux, ou então, 'chame' outro programa gráfico que
      você saiba estar instalado, como por exemplo o 'firefox'.

   ou ainda, em alguns sistemas que usam o 'sudo', este teste
   poderia ser feito assim:

      debian@debian:~$ sudo su
      Senha:
      debian:/home/debian# gedit

      NOTE: neste exemplo eu 'chamei' o programa chamado
      'gedit' pelo terminal. Novamente, para este teste ser
      válido é necessário que o programa 'gedit' esteja
      instalado no seu sistema Linux ou então 'chame' outro
      programa gráfico que você saiba estar instalado,
      como por exemplo o 'gimp'.

   Se ao executar este teste a mensagem de retorno for semelhante
   ao abaixo, então seu sistema não aparecerá a caixa gráfica
   com as mensagens com o estatísticas de MB's trafegados, tanto
   recebido como envidados:

      debian@debian:~$ su
      Senha:
      debian:/home/debian# kate
      Invalid MIT-MAGIC-COOKIE-1 keykate: cannot connect to
      X server :0

   Para corrigir isto, se for o caso, será necessário executar
   o seguinte comando, como usuário comum, toda vez que você
   'entrar' no ambiente gráfico:

      debian@debian:~$ xhost +
      access control disabled, clients can connect from any host

      NOTE: Naturalmente você poderá automatizar esta
      ação em vez de fazê-la manualmente toda vez que você
      'levantar' o ambiente gráfico. Normalmente é uma tarefa
      simples desde que você use um ambiente gráfico mais
      completo como o 'KDE', 'GNOME', ou semelhantes.



##### ----------------------------------
#####  5) DICA DE CONFIGURAÇÕES INTERNA
##### ----------------------------------

   A principal configuração interna a ser feita no script
   'status_ppp' para que ele possa funcionar devidamente é o acerto
   da variável 'localizacao'. Ela é feita na seguinte linha,
   que localiza-se nas primeiras linhas do script (a primeira linha
   não comentada, ou seja, que não começa com o "#" - sustenido).

      localizacao="`pwd`/estatisticas_ppp"

   Esta localização presume que você ira manter o script
   'status_ppp' dentro de diretório 'estatisticas_ppp'. Este
   diretório, por sua vez, esta localizado dentro da seu diretório
   de usuário que por sua vez esta localizado dentro da diretório
   '/home'. Caso você mude esta localização você deverá
   descrever o caminho correto nesta linha, descrevendo dentro de ""
   (aspas), como nos exemplos abaixo:

      localizacao="/var/log/estatisticas_ppp"
      localizacao="/home/debian/.SCRIPT/estatisticas_ppp"
      localizacao="/home/estatisticas_ppp"
      localizacao="/home/Meus Scripts/estatisticas_ppp"

      NOTE: Esse script poderá localizar-se em um lugar
      estratégico para que vários sistemas Linux que
      por ventura você possa ter instalado o execute e
      você possa acessar a internet por todos eles e ainda
      assim ter um controle unificado do tráfego de MB's
      usados. Exemplificando, você poderá localiza-lo em
      partição que vamos chamar de 'sda1', uma partição
      de grande tamanho. Neste caso você poderia instalar
      vários sistemas Linux colocando o '/' em alguma
      outra partição e o '/home' deles nesta partição
      que chamamos de 'sda1' (neste caso é altamente
      recomendado usar um nome de usuário diferente em cada
      sistema instalado). Depois disso é só configurar cada
      sistema para executar o script 'status_ppp', de modo que,
      você pode alternar entre os sistemas Linux instalado,
      usando a internet neles, e ainda assim ter um controle
      unificado do tráfego de MB's usados, tendo a soma total
      de todos estes sistemas juntos (porém, deve-se acertar
      devidamente a data e hora de todos os sistemas).



##### --------------
#####  6) DICAS DE USO
##### --------------

   1) Este script deve ser executado pelo usuário 'root', ou seja,
   o administrador do sistema.

      debian@debian:~$ su
      Senha:
      debian:/home/debian# sh estatisticas_ppp/status_ppp

   2) Este script deve ficar em execução durante todo o período
   que você tiver usando a internet. Quando você quiser para-lo
   você deve executar simultaneamente as teclas "CONTROL + C"
   (com a janela do terminal em que ele estiver sendo executado
   em primeiro plano). Fazendo assim ele executará as somas
   necessárias para o correto controle do tráfego de MB's usados
   e apresentará o resultado à você. Não deve-se fechar a
   janela em que ele esta sendo executado diretamente (clicando o
   'X' da janela) porque isso poderá causar problemas nas etapas
   subsequentes que ele executa, ou seja, as somas de MB's usados,
   o que nos interessa.

   3) Em caso de queda de energia, sem que haja um nobreak
   funcionando, travamento do sistema, a somas de MB's usados será
   perdida causando imprecisões.

   4) Ao executar simultaneamente as teclas "CONTROL + C" é normal
   o script demorar um pouco para retornar a janela gráfica com as
   mensagens de trafego de MB's usado.

   5) Para uma melhor comodidade você poderá fazer um 'laçador',
   ou link para aplicativo, na sua área de Desktop para executar
   este script. Lembre-se apenas deve-se executá-lo como root.



ESFORCE-SE.

  



Esconder código-fonte

#! /bin/bash

##### --------------
#####  TERMO DE USO
##### --------------
#
#   CABE SOMENTE AO SR., USUÁRIO, A RESPONSABILIDADE
#   POR QUAISQUER PREJUÍSOS DECORRIDOS PELO USO
#   DESTE SCRIPT.
#
#   Caso não concorde com isto, não use este script
#



##### --------
#####  VERSÃO
##### --------
#
#   Versão:
#   1.0 - fevereiro2010
#
#   Autor:
#   Ricardo Sabaliauskas
#



##### ----------------------------
#####  INFORMAÇÕES PARA O USUÁRIO
##### ----------------------------
#   Objetivo deste script:
#   Conectar a internet pelo seu modem celular e 
#   permitir o controle de consumo de banda por
#   exibir informações como:
#      1) Quantidade de MB acessado no dia
#      2) Média de MB por dia
#      3) MBs totais
#


##### --------------
#####  DEPENDÊNCIAS
##### --------------
#   Para que este script funcione conforme o planejado
#   é necessário a instalação dos seguintes programas:
#   1) wvdial (com a correta configuração do arquivo
#      "/etc/wvdial.conf" diacordo com sua operadora
#      de internet (TIM, CLARO ou VIVO)
#   2) konsole
#   3) dialog
#



##### ----------------------
#####  CONFIGURAÇÃO PESSOAL
##### ----------------------
#
#   Para que este script funcione corretamente
#   é necessário descrever abaixo a correta
#   localização dele dentro de sua árvore de
#   diretórios.
#
 localizacao="/`pwd`/estatisticas_ppp"
#



##### --------
#####  BACKUP
##### --------
#
#   Todo início de mês é necessário fazer um backup
#   das informações obtidas no mês anterior e
#   "zerar" o arquivo "ppp.log" para que este
#   script recomece a fazer a contagem novamente.
#
 [ -e "$localizacao/ppp.log" ] || touch $localizacao/ppp.log
#
 dia=$(date +%e)
#
 data=$(date +%m-%Y -d "1 months ago")
#
 [ -e "$localizacao/$data" ] || mv $localizacao/ppp.log $localizacao/$data
#


   
##### ---------
#####  FUNÇÕES
##### ---------
#
#
 filtro_um ()
{
#
   cat /var/log/messages | grep pppd | grep Sent >> $localizacao/ppp.log
#
   sort -u $localizacao/ppp.log > $localizacao/ppp.1.log
#
   [ $? = 0 ] && mv $localizacao/ppp.1.log $localizacao/ppp.log
#
}
#
#
 somador ()
{
#
   ### Soma Total
   ### ----------
#
 LANG=en_US.iso8859-1
#
 mes_anterior=$(date +%b -d "1 months ago")
#
    cat $localizacao/ppp.log | grep -v $mes_anterior | awk -F " " '{print $7, $10}' > $localizacao/soma_bytes_ppp
#
   total=0
#
   for part in `cat /$localizacao/soma_bytes_ppp`
#
      do total=$(($part+$total))
#
      done
#
   total=$(($total/1048576))
#
   echo "Quantidade total de dados trafegado é $total MB" > $localizacao/mensagem_ppp
#
   echo "Quantidade total de dados trafegado é $total MB"
#
#
   ### Soma Média Diária
   ### -----------------
#
   dia_hoje=$(date +%e)
#
   total_mb=$(($total/$dia_hoje))
#
   echo "Média diaria é $total_mb MB" >> $localizacao/mensagem_ppp
#
   echo "Média diaria é $total_mb MB"
#
#
   ### Soma Do Dia Atual
   ### -----------------
#
   cat $localizacao/ppp.log | grep " $dia_hoje " | awk -F " " '{print $7, $10}' >  $localizacao/soma_bytes_dia_ppp
#
   total=0
#
   for part in `cat $localizacao/soma_bytes_dia_ppp`
#
      do total=$(($part+$total))
#
      done
#
   total=$(($total/1048576))
#
   echo "Consumo do dia `date +%e` deste mês é $total MB" >> $localizacao/mensagem_ppp
#
   echo "Consumo do dia `date +%e` deste mês é $total MB"
#
}
#
#
 aviso_grafico ()
{
#
 LANG=pt_BR.UTF-8
#
   konsole -e dialog\
 --title "Mensagem De Consumo de Banda"\
 --tailbox $localizacao/mensagem_ppp\
 0 0 

}
#
#


##### -------
#####  AÇÕES
##### -------
#
#
 wvdial -C /etc/wvdial.conf
#
 filtro_um
#
 somador
#
 aviso_grafico
#

Scripts recomendados

Colorindo o seu Shell Script

Instalação e configuração DNS

Bloquear contas em servidor Zimbra após 45 dias

Limpar cache Squid

Configurar a rede no Debian, Kurumim e Ubuntu


  

Comentários
[1] Comentário enviado por rfcsilva em 12/01/2011 - 02:41h

Parabéns pelo excelente trabalho.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts