CBQU - Utilitário para controle de banda de forma fácil e interativa
Publicado por Fábio Melo (última atualização em 22/10/2009)
[ Hits: 5.608 ]
Homepage: http://www.tuxtecnologia.com.br
Utilitário para controle de banda.
Usa o script "CBQ".
#!/bin/bash ########################################################################## # # Copyright (C) 2009 Fábio Melo (fabio@fabiomelo.net) http://www.fabiomelo.net # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # ########################################################################## # # Programa usado para cadastrar regras de controle (CBQ) de banda de forma rapida e facil # Todos as configuracoes sao salvas no arquivo # # /etc/clientes # # E os arquivos de classes dentro de # # /etc/cbq/ # ########################################################################## # #Inicio # # # #------------------------------------------ #Checa a presenca do IP-ROUTE2 if [ -e /sbin/tc ] then sleep 0 else echo "" echo " ip-route2 nao instalado" echo "" echo "Abortando!!!" echo "" exit fi #------------------------------------------ # # # #------------------------------------------ #Checa a presenca do CBQ if [ -e /etc/init.d/cbq ] then sleep 0 else echo "" echo " CBQ nao instalado ou nao presente em /etc/init.d/cbq " echo "" echo "Abortando!!!" echo "" exit fi #------------------------------------------ # # # #Apresentacao echo "" echo "" echo "" echo "Bem vindo ao CBQU, script para adicionar regras de controle de banda de forma rapida e pratica" echo "" echo "" echo "" echo " Agora faremos algumas perguntas sobre sua nova regra, e ao final suas regras estarao prontas...:-)" echo "" echo "" echo "" #Pergunta sobre o nome da estacao echo "Qual o nome da estacao que a regra ira se aplicar?" read ESTACAO #------------------------------------------ # # # #------------------------------------------ #Pergunta sobre o ip da estacao echo "" echo "Qual o ip da estacao?" read IP #------------------------------------------ # # # #------------------------------------------ #Pergunta sobre o valor da taxa de download echo "" echo "Qual o valor da conexao --Download--?" read DOWN #------------------------------------------ # # # #------------------------------------------ #Pergunta sobre o valor da taxa de upload echo "" echo "Qual o valor da conexao --Upload--?" read UP #------------------------------------------ # # # #------------------------------------------ #Pergunta sobre a prioridade echo "" echo "Qual a prioridade da regra (entre 1 e 8)?" read PRIO #------------------------------------------ # # # #------------------------------------------ #Pergunta se ele pode pegar mais banda caso haja excedente echo "" echo "Caso haja Banda Excedente na rede, ele pode usa-la? (Responda >sim< ou >nao<)" read PBOU #------------------------------------------ # # # #------------------------------------------ #Pergunta se deve emprestar banda caso nao esteja usando echo "" echo "Caso esta máquina nao use toda sua Banda, ela pode empresta-la? (Responda >sim< ou >nao<)" read PISO #------------------------------------------ # # # #------------------------------------------ #Pergunta sobre a interface externa echo "" echo "Qual a sua interface de rede externa? --ex: eth1 " read PIFACEE #------------------------------------------ # # # #------------------------------------------ #Pergunta sobre a interface interna echo "" echo "Qual a sua interface de rede interna? --ex: eth0 " read PIFACEI #------------------------------------------ # # # #------------------------------------------ #Configuracao de isolated if [ "$PISO" == "nao" ]; then PISO=no else PISO=yes fi #------------------------------------------ # # # #Configuracao de bounded if [ "$PBOU" == "nao" ]; then PBOU=no else PBOU=yes fi #------------------------------------------ # # # #------------------------------------------ #Configuracao da taxa Download e Upload TXD=`expr $DOWN / 8` TXU=`expr $UP / 8` #------------------------------------------ # # # #------------------------------------------ # Verifica a existencia do arquivo "/etc/clientes" if [ -e /etc/clientes ] then ULTIMO=`tail -1 /etc/clientes` PCODIGO=`echo $ULTIMO | awk -F "|" '{print $1}'` CODIGO=`expr $PCODIGO + 1` else touch /etc/clientes CODIGO=10 fi #---------------------------------------------- # # # #---------------------------------------------- # Adiciona a entrada ao arquivo de configuracao echo ""00"$CODIGO|$ESTACAO|$IP|$DOWN|$TXD|$UP|$TXU|$PRIO|$PIFACEI|$PIFACEE|$PBOU|$PISO" >> /etc/clientes #---------------------------------------------- # # # #----------------------------------------------- #apaga regras antigas ( ele criara todas de novo ) if [ -e /etc/cbq ] then rm -f /etc/cbq/* else mkdir /etc/cbq fi #----------------------------------------------- # # # #----------------------------------------------- #adiciona os valores lidos no arquivo /etc/clientes aas variaveis usadas na criacao do cbq LISTA=`cat /etc/clientes` for CLIENTE in $LISTA; do CODIGO2=`echo $CLIENTE | awk -F "|" '{print $1}'` ESTACAO2=`echo $CLIENTE | awk -F "|" '{print $2}'` IP2=`echo $CLIENTE | awk -F "|" '{print $3}'` DOWN2=`echo $CLIENTE | awk -F "|" '{print $4}'` TXD2=`echo $CLIENTE | awk -F "|" '{print $5}'` UP2=`echo $CLIENTE | awk -F "|" '{print $6}'` TXU2=`echo $CLIENTE | awk -F "|" '{print $7}'` PRIO2=`echo $CLIENTE | awk -F "|" '{print $8}'` IFACEI=`echo $CLIENTE | awk -F "|" '{print $9}'` IFACEE=`echo $CLIENTE | awk -F "|" '{print $10}'` BOU=`echo $CLIENTE | awk -F "|" '{print $11}'` ISO=`echo $CLIENTE | awk -F "|" '{print $12}'` #---------------------------------------------- # # # #---------------------------------------------- # cria os arquivos usando as variaveis UPLOAD="/etc/cbq/cbq-"$CODIGO2"."$ESTACAO2"_out" DOWNLOAD="/etc/cbq/cbq-"$CODIGO2"."$ESTACAO2"_in" touch $UPLOAD touch $DOWNLOAD #---------------------------------------------- # # # #---------------------------------------------- # Da permissao de leitura aos scripts de controle de banda chown 444 /etc/cbq/* #---------------------------------------------- # # # #---------------------------------------------- #preenche o arquivo de configuracao de upload echo "DEVICE=$IFACEE,10Mbit,1Mbit" >> $UPLOAD echo "RATE=$UP2""kbit" >> $UPLOAD echo "WEIGHT=$TXU2""kbit" >> $UPLOAD echo "PRIO=$PRIO2" >> $UPLOAD echo "RULE=""$IP2""," >> $UPLOAD echo "BOUNDED=$BOU" >> $UPLOAD echo "ISOLATED=$ISO" >> $UPLOAD #---------------------------------------------- # # # #---------------------------------------------- #preenche o arquivo de configuracao de download echo "DEVICE=$IFACEI,10Mbit,1Mbit" >> $DOWNLOAD echo "RATE=$DOWN2""kbit" >> $DOWNLOAD echo "WEIGHT=$TXD2""kbit" >> $DOWNLOAD echo "PRIO=$PRIO2" >> $DOWNLOAD echo "RULE=""$IP2" >> $DOWNLOAD echo "BOUNDED=$BOU" >> $DOWNLOAD echo "ISOLATED=$ISO" >> $DOWNLOAD #---------------------------------------------- # # # done # # # #---------------------------------------------- #Compila as regras echo "" echo "Compilando as regras..." echo "" sleep 2 /etc/init.d/cbq compile && COMPILE=ok #---------------------------------------------- # # # #---------------------------------------------- # Verifica erros na compilacao if [ "$COMPILE" == "ok" ]; then echo "" echo "Regras Compiladas com sucesso!" echo "" else echo "" echo "Erro ao Compilar Regras!" echo "" fi #---------------------------------------------- # # # #---------------------------------------------- #Restarta o CBQ echo "" echo "Reiniciando o CBQ..." echo "" sleep 2 /etc/init.d/cbq restart && RESTART=ok #---------------------------------------------- # # # #---------------------------------------------- #Verifica erros no Restart if [ "$RESTART" == "ok" ]; then echo "" echo "CBQ Reiniciado com sucesso!" else echo "" echo "Erro ao Reiniciar CBQ!" echo "" fi #----------------------------------------------
Criar pacotes .deb apartir de script
FTP Linux-Windows Baseado na Data Atual
Script para atualizar o sistema
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
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
Criando uma VPC na AWS via CLI
Multifuncional HP imprime mas não digitaliza
Dica básica para escrever um Artigo.
Como Exibir Imagens Aleatórias no Neofetch para Personalizar seu Terminal
Melhorando a precisão de valores flutuantes em python[AJUDA] (11)
GLPI - Configuração de destinatário com conta Microsoft Exchange (0)
Vou voltar moderar conteúdos de Dicas e Artigos (3)
OpenVPN no MACBOOK conecta mas não pinga pastas de rede compartilhada ... (1)