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.
#! /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 #
Bloquear contas em servidor Zimbra após 45 dias
Configurar a rede no Debian, Kurumim e Ubuntu
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Preciso resolver um erro de DPKG (1)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (2)
Não to conseguindo resolver este problemas ao instalar o playonelinux (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta