Ferramenta para o CBQ - parte 1

Publicado por Fábio Melo 04/03/2008

[ Hits: 5.783 ]

Homepage: http://www.tuxtecnologia.com.br

Download novo.sh




Adiciona a configuração ao arquivo /etc/clientes

  



Esconder código-fonte

#!/bin/bash

# Utilitario para Criar as regras de controle de banda


#pega o ultimo codigo configurado.
ULTIMO=`tail -1 /etc/provedor/clientes`
SCODIGO=`echo $ULTIMO | awk -F "|" '{print $1}'`
CODIGO=`expr $SCODIGO + 1`

echo "Nome da estação"
read estacao

echo "Ip da estação"
read ip

echo "Velocidade da conexao"
read con

echo "Taxa de Download (normalmente = velocidade conexão / 10)"
read down

echo "Taxa de Upload"
read up

echo "Prioridade (Normalmente se usa 5)"
read prio

echo ""00"$CODIGO|$estacao|$ip|$con|$down|$up|$prio" >> /etc/provedor/clientes

Scripts recomendados

Envio de e-mail via console

QOS com Iptables

Enviar e-mail via shell script usando e-mail autenticado

Comparando arquivos por data

Init Service for Slackware


  

Comentários
[1] Comentário enviado por fabiodmf em 04/03/2008 - 13:50h

Nova Versão...
----------------------------------------------------------------

#!/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
#----------------------------------------------

[2] Comentário enviado por fabner em 10/06/2008 - 10:45h

Bom Dia notei q vc domina o cbq sabe c tem como instalar sem precisar mexer com o kernel ? uso o Fedora core 8


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts