Cadastro Regras de Controle de Banda - CBQ
Publicado por Fábio Melo 29/09/2008
[ Hits: 8.208 ]
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 #----------------------------------------------
Script Para Ajustar o Intevalo de Legendas 2
Retra de iptables para DMZ na porta 80
Bloqueia MAC Adress salvos na lista
Conciliando ZRAM Swap com Swap em arquivo ou partição
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Proteja seu Linux Mint com o Timeshift: Restaure o sistema mesmo que ele não inicie!
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Debian 13 Trixie para Iniciantes
Convertendo pacotes DEB que usam ZSTD (Padrão Novo) para XZ (Padrão Antigo)
Ajuda com o Debian 13 - Video hibrido geforce 940 mx Wayland OFF (2)
Problema com impressoras de rede (1)
Rust é o "C da nossa geração"? (10)