Cadastro Regras de Controle de Banda - CBQ
Publicado por Fábio Melo 29/09/2008
[ Hits: 8.108 ]
Homepage: http://www.tuxtecnologia.com.br
Facilita o cadastro de regras de controle de banda. Não necessita de nenhum conhecimento avançado em cbq.
Nele você define:
-velocidade download da classe
-velocidade de upload da classe
-prioridade
-endereço da classe
-interface de entrada
-interface de saida
-se a classe pode emprestar banda
-se a classe pode pegar banda emprestada
-verifica se cbq está instalado ( se não estiver o script e abortado)
-verifica se o ip-route2 está instalado ( se não estiver o script e abortado)
-verifica erros na compilacao das classes
-verifica erros no inicializacao do CBQ
#!/bin/bash ########################################################################## # # Copyright (C) 2008 Fábio Melo (fabiodmf@gmail.com) # # 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 #----------------------------------------------
Unificando arquivos de bloqueio e liberação no squid
POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - ENVIA MSG CASO O USUÁRIO PASSE 90% DA SUA QUOTA
Monitoramento de usuário via screenshots
Plugin para o Nagios monitorar o vencimento do certificado Zimbra
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Criar entrada no GRUB para uma ISO Linux (7)
Open Suse não abre wi-fi automaticamente (3)
Ruído no Microfone (ALC287 - AMD Ryzen 5 7535HS) no Debian 12.9 (15)