gregorye
(usa Debian)
Enviado em 23/09/2010 - 17:32h
Boa Tarde galera, tenho o script abaixo para controle de banda que ele pega uma listagem de usuários e gera a tabela do SHAPER para cada usuário, porem como podem notar para cada usuário tenho que destinar um numero para gerar no cbq. Quero que esse numero fique automaticamente ex: 0001, 0002, 0003, sem eu ter que colocar para cada usuário, tentei várias formas mas não consegui!
Segue lista dos clientes:
/etc/provedor/clientes_cbq
0010|usuario1|172.16.1.101|400|256|5|A
0011|usuario2|172.16.1.102|128|64|5|A
O script que le isso:
#!/bin/bash
# script criado por Tiago Andre Geraldi - virgulla@gmail.com
rm -f /etc/shaper/*
LISTA=`cat /etc/provedor/clientes_cbq`
for CLIENTE in $LISTA; do
CODIGO=`echo $CLIENTE | awk -F "|" '{print $1}'`
NOME=`echo $CLIENTE | awk -F "|" '{print $2}'`
IP=`echo $CLIENTE | awk -F "|" '{print $3}'`
DOWN=`echo $CLIENTE | awk -F "|" '{print $4}'`
UP=`echo $CLIENTE | awk -F "|" '{print $5}'`
PRIO=`echo $CLIENTE | awk -F "|" '{print $6}'`
STAT=`echo $CLIENTE | awk -F "|" '{print $7}'`
# checa se esta ativado
if [ "$STAT" = "A" ]; then
UPLOAD="/etc/shaper/cbq-"$CODIGO"."$NOME".in"
DOWNLOAD="/etc/shaper/cbq-"$CODIGO"."$NOME".out"
touch $UPLOAD
touch $DOWNLOAD
chown 755 /etc/shaper/*
# Divisao por 10 automatica.
# Divide DOWNLOAD
DIV_DOWN=`echo " $DOWN / 10 " | bc`
# Divide UPLOAD
DIV_UP=`echo " $UP / 10 " | bc`
# Upload
echo "DEVICE=eth0,100Mbit,10Mbit" >> $UPLOAD
echo "RATE=$UP""KBit" >> $UPLOAD
echo "WEIGHT=$DIV_UP" >> $UPLOAD
echo "PRIO=$PRIO" >> $UPLOAD
echo "RULE=""$IP" >> $UPLOAD
echo "BOUNDED=yes" >> $UPLOAD
echo "ISOLATED=yes" >> $UPLOAD
echo "MARK="$CODIGO"" >> $UPLOAD
echo "$conta" >> $UPLOAD
## MARK UPLOAD -
iptables -t mangle -A POSTROUTING -s $IP -j MARK --set-mark $CODIGO
# Download
echo "DEVICE=eth2,100Mbit,10Mbit" >> $DOWNLOAD
echo "RATE=$DOWN""KBit" >> $DOWNLOAD
echo "WEIGHT=$DIV_DOWN" >> $DOWNLOAD
echo "PRIO=$PRIO" >> $DOWNLOAD
echo "RULE=""$IP" >> $DOWNLOAD
echo "BOUNDED=yes" >> $DOWNLOAD
echo "ISOLATED=yes" >> $DOWNLOAD
fi
done
/etc/init.d/shaper compile
/etc/init.d/shaper restart
## FIM DO ARQUIVO ##
*Detalhe o script não é meu, foi publicado e mantido o autor... encrementei a divisão automatica para facilitar.