Cadastro Regras de Controle de Banda - CBQ
Publicado por Fábio Melo 29/09/2008
[ Hits: 8.080 ]
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 construção de VPN-SSL
DNS dinâmico noip2 para systemd
Inventário e Análise de hardware
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
O que esta havendo com o mercado de ti? (6)
Hotspot Mikrotik nao carrega pagina de login. (0)
Kernel Linux 5.15.0-131.141 (6)