Ir ao conteúdo
  • Cadastre-se

Balanceamento de carga em Linux Server ou roteador "Loadbalance"?


maozaorox

Posts recomendados

Eu tirei isso aqui:

#####Arquivo de firewall da embratel - Esse arquivo é onde está os comandos, lembre-se dar permissão de execução para esse arquivo ;)

FWE="/etc/firewall/fwEmbratel.sh"

#####Arquivo de firewall da gvt - Esse arquivo é onde está os comandos, lembre-se dar permissão de execução para esse arquivo ;)

FWG="/etc/firewall/fwGvt.sh"

Tiro isso aqui também?

$FWE

cat /etc/firewall/networkEmbratel.txt > /etc/sysconfig/network

echo "#!/bin/bash" >> /etc/firewall/linkVolto.sh

echo "$ROTADEL$ROTAGVT" >> /etc/firewall/linkVolto.sh

echo "$ROTAADD$ROTAEMBRATEL" >> /etc/firewall/linkVolto.sh

echo "$FWE" >> /etc/firewall/linkVolto.sh

chmod +x /etc/firewall/linkVolto.sh

/etc/firewall/linkVolto.sh

/bin/bash /etc/firewall/linkVolto.sh

rm -rf /etc/firewall/linkVolto.sh

E isso:

$FWG

cat /etc/firewall/networkGvt.txt > /etc/sysconfig/network

echo "Ativando a rota da GVT" >> /var/log/redundante.log

#Envia o email avisando o que link da Embratel caiu

# mail -s "Cliente XYZ - O Link da EMBRATEL fora do AR"

******@***.com.br < /etc/firewall/embratel_caiu.txt

# mail -s "Link da GVT esta no AR" *******@***.com.br <

/etc/firewall/gvt.txt

É que não tenho certeza se todas essas linhas fazem parte do $FWG/#FWE, e se o e mail que ele manda tem a ver com o firewall tambem.

Ou se você puder alterar o script la para tirar essa parte do firewall e do envio de e-mail se o link cair, que não acho muito importante, e to com medo de apagar coisa que não deve UHUHHU

Então se você puder editar aquele script sem essas opções que citei acima simplificaria para nós dois =]

Link para o comentário
Compartilhar em outros sites

/\ Foi exatamente o que eu fiz HUHUHUHUHU

Aqui está o script depois que eu retirei algumas coisas:

#!/bin/bas -x

export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/etc

#####IP do TERRA para fazer o teste, você pode deixar esse IP pra teste mesmo

TERRA="200.176.2.10"

#####IP da UOL para fazer o teste, você pode deixar esse IP pra teste mesmo

UOL="200.98.249.120"

#####GW da Virtua - Aqui você diz o seu gateway da Virtua (lembre-se de substituir pelo o do seu provedor)

ROTAEMBRATEL="189.55.160.1"

#####GW do Speedy - Mesma coisa do de cima, diga o IP do seu gateway.

ROTAGVT="192.168.0.1"

#####IP fixo da virtua

IPEMBRATEL="189.55.165.139"

#####IP da speedy

IPGVT="192.168.0.2"

#####Interface da Virtua

ETHE="eth0"

#####Interface da Speedy

ETHG="eth2"

#####IP do terra

TESTE="200.176.2.10"

#####Data atual - Isso servirá para colocar no log quando houve mudança do link e a que horas

HORAATUAL=`date +%T`

DATAATUAL=`date +%Y-%m-%d`

DATA=$DATAATUAL" / "$HORAATUAL

#####Verifica a rota atual - Esse comando apenas verifica qual link você está usando

ROTAATUAL=`(route -n | grep UG | awk -F' ' '{ print $2}')`

#####Deleta a rota - Ele irá deltar a rota do gateway, para só depoiscolocar a outra

ROTADEL="route del default gw "

##### Comando para adicionar a rota - Agora ele adiciona a nova rota para o gateway

ROTAADD="route add default gw "

#####Adiciona a rota do terra (Se a embratel estiver fora) - Agora começa a "moer", se a embratel"

route add -host $TERRA gw $ROTAEMBRATEL dev eth0

route add -host $UOL gw $ROTAGVT dev eth2

#####Se o terra pingar, o link esta OK - agora começa os testes de ping para verificar se o link caiu ou não

if ( ping -I $ETHE -c 4 $TERRA > /dev/null ); then

#Cria os logs - vai gerar os logs

#echo $DATA >> /var/log/redundante.log

#echo "Link Embratel esta OK" >> /var/log/redundante.log

#####Se a rota default for igual a rota da embratel, nao faz nada

if [ "$ROTAATUAL" == "$ROTAEMBRATEL" ]; then

echo "Rota Embratel esta OK - $HORAATUAL" >> /var/log/redundante.log

#####Se a rota default for diferente da embratel, coloca a rota default como embratel

else

$ROTADEL $ROTAATUAL

$ROTAADD $ROTAEMBRATEL

#Finaliza os logs

#echo "Fim da verificacao EMBRATEL" >> /var/log/redundante.log

#echo " " >> /var/log/redundante.log

#echo " " >> /var/log/redundante.log

else

#####Se pingar é porque o link esta ok

if ( ping -I $ETHG -c 4 $UOL >/dev/null ); then

#cria os logs

echo $DATA >> /var/log/redundante.log

echo "Link GVT esta OK" >> /var/log/redundante.log

##### Se a rota default for igual a da gvt, nao faz nada

if [ "$ROTAATUAL" == "$ROTAGVT" ]; then

echo "Rota Embratel ainda esta fora do ar" >> /var/log/redundante.log

echo " " >> /var/log/redundante.log

echo " " >> /var/log/redundante.log

##### Se a rota default for diferente da GVT, adiciona a rota defaul como sendo da GVT

else

$ROTADEL $ROTAEMBRATEL

$ROTAADD $ROTAGVT

#Cria os logs

echo "Fim da verificacao GVT" >> /var/log/redundante.log

echo " " >> /var/log/redundante.log

echo " " >> /var/log/redundante.log

fi

fi

#####Deleta rotas do Terra

route del -host $TERRA gw $ROTAEMBRATEL dev eth0

route del -host $UOL gw $ROTAGVT dev eth2

Retirei as partes do firewall e do e-mail em caso de falha no link.

Mas quando executo o script:

-bash: ./links.sh: /bin/bas: bad interpreter: No such file or directory

:(

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Tente assim :


#!/bin/bash -x

#a linha abaixo apenas define os caminhos da variável "path"
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/etc

#####A EMBRATEl usa o TERRA para fazer o teste, você pode deixar esse IP pra teste mesmo
TERRA="200.176.2.10"

#####A GVT usa o UOL para fazer o teste, você pode deixar esse IP pra teste mesmo
UOL="200.98.249.120"

#####GW da Embratel - Aqui você diz o seu gateway da Embratel (lembre-se de substituir pelo o do seu provedor)
ROTAEMBRATEL="201.21.xxx.1"

#####GW da GVT - Mesma coisa do de cima, diga o IP do seu gateway.
ROTAGVT="10.1.1.1"

#####IP fixo da embratel
IPEMBRATEL="201.21.xxx.xx"

#####IP da gvt
IPGVT="10.1.1.254"

#####Interface da Embratel
ETHE="eth1"

#####Interface da GVT
ETHG="eth2"

#####IP do terra
TESTE="200.176.2.10"

#####Data atual - Isso servirá para colocar no log quando houve mudança do link e a que horas
HORAATUAL=`date +%T`
DATAATUAL=`date +%Y-%m-%d`
DATA=$DATAATUAL" / "$HORAATUAL

#####Verifica a rota atual - Esse comando apenas verifica qual link você está usando
ROTAATUAL=`(route -n | grep UG | awk -F' ' '{ print $2}')`

#####Deleta a rota - Ele irá deltar a rota do gateway, para só depois colocar a outra
ROTADEL="route del default gw "

##### Comando para adicionar a rota - Agora ele adiciona a nova rota para o gateway
ROTAADD="route add default gw "

#####Adiciona a rota do terra (Se a embratel estiver fora) - Agora começa a "moer", se a "embratel" estiver fora, ele joga todo mundo pra o "GVT"
route add -host $TERRA gw $ROTAEMBRATEL dev eth1
route add -host $UOL gw $ROTAGVT dev eth2

#####Se o terra pingar, o link esta OK - agora começa os testes de ping para verificar se o link caiu ou não
if ( ping -I $ETHE -c 4 $TERRA > /dev/null ); then
#Cria os logs - vai gerar os logs
#echo $DATA >> /var/log/redundante.log
#echo "Link Embratel esta OK" >> /var/log/redundante.log

#####Se a rota default for igual a rota da embratel, nao faz nada
if [ "$ROTAATUAL" == "$ROTAEMBRATEL" ]; then
echo "Rota Embratel esta OK - $HORAATUAL" >> /var/log/redundante.log
#####Se a rota default for diferente da embratel, coloca a rota default como embratel
else
$ROTADEL $ROTAATUAL
$ROTAADD $ROTAEMBRATEL
cat /etc/firewall/networkEmbratel.txt > /etc/sysconfig/network
echo "#!/bin/bash" >> /etc/firewall/linkVolto.sh
echo "$ROTADEL$ROTAGVT" >> /etc/firewall/linkVolto.sh
echo "$ROTAADD$ROTAEMBRATEL" >> /etc/firewall/linkVolto.sh
chmod +x /etc/firewall/linkVolto.sh
/etc/firewall/linkVolto.sh
/bin/bash /etc/firewall/linkVolto.sh
rm -rf /etc/firewall/linkVolto.sh

echo "Link da Embratel esta no ar novamente OK - $HORAATUAL" >> /var/log/redundante.log
#Envia um email avisando que voltou o link da embratel
#mail -s "Cliente XYZ - O Link da EMBRATEL voltou a funcionar" [email protected] < /etc/firewall/embratel.txt
fi
#Finaliza os logs
#echo "Fim da verificacao EMBRATEL" >> /var/log/redundante.log
#echo " " >> /var/log/redundante.log
#echo " " >> /var/log/redundante.log

else
#####Se pingar é porque o link esta ok
if ( ping -I $ETHG -c 4 $UOL >/dev/null ); then
#cria os logs
echo $DATA >> /var/log/redundante.log
echo "Link GVT esta OK" >> /var/log/redundante.log

##### Se a rota default for igual a da gvt, nao faz nada
if [ "$ROTAATUAL" == "$ROTAGVT" ]; then
echo "Rota Embratel ainda esta fora do ar" >> /var/log/redundante.log
echo " " >> /var/log/redundante.log
echo " " >> /var/log/redundante.log
##### Se a rota default for diferente da GVT, adiciona a rota defaul como sendo da GVT
else
$ROTADEL $ROTAEMBRATEL
$ROTAADD $ROTAGVT
echo "Ativando a rota da GVT" >> /var/log/redundante.log
#Envia o email avisando o que link da Embratel caiu
# mail -s "Cliente XYZ - O Link da EMBRATEL fora do AR" [email protected] < /etc/firewall/embratel_caiu.txt
# mail -s "Link da GVT esta no AR" [email protected] < /etc/firewall/gvt.txt
fi

#Cria os logs
echo "Fim da verificacao GVT" >> /var/log/redundante.log
echo " " >> /var/log/redundante.log
echo " " >> /var/log/redundante.log
fi

fi


#####Deleta rotas do Terra
route del -host $TERRA gw $ROTAEMBRATEL dev eth1
route del -host $UOL gw $ROTAGVT dev eth2

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Fala gente, demorei um pouco pra ver porque ta muito corrido aqui pra mim.

Então, coloquei o script como me passaram ai por ultimo, e reparei que o IP do Virtua mudou, acho que ele muda toda semana não tenho certeza, então fui la e alterei no script também.

Ai executo ele com o ./links.sh e aparece o seguinte:

+ export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/etc

+ PATH=/bin:/sbin:/usr/bin:/usr/sbin:/etc

+ TERRA=200.176.2.10

+ UOL=200.98.249.120

+ ROTAEMBRATEL=189.55.160.1

+ ROTAGVT=192.168.0.1

+ IPEMBRATEL=189.55.166.142

+ IPGVT=192.168.0.252

+ ETHE=eth0

+ ETHG=eth2

+ TESTE=200.176.2.10

++ date +%T

+ HORAATUAL=11:04:33

++ date +%Y-%m-%d

+ DATAATUAL=2009-09-26

+ DATA='2009-09-26 / 11:04:33'

++ route -n

++ grep UG

++ awk '-F ' '{ print $2}'

+ ROTAATUAL=

+ ROTADEL='route del default gw '

+ ROTAADD='route add default gw '

+ route add -host 200.176.2.10 gw 189.55.160.1 dev eth0

SIOCADDRT: No such process

+ route add -host 200.98.249.120 gw 192.168.0.1 dev eth2

SIOCADDRT: No such device

+ ping -I eth0 -c 4 200.176.2.10

+ ping -I eth2 -c 4 200.98.249.120

ping: unknown iface eth2

+ route del -host 200.176.2.10 gw 189.55.160.1 dev eth0

SIOCDELRT: No such process

+ route del -host 200.98.249.120 gw 192.168.0.1 dev eth2

SIOCDELRT: No such device

Tento dar um ping, ou acessar a internet de outro PC e nada.

Help ;D

Link para o comentário
Compartilhar em outros sites

Aqui está o código exatamente como está:

#!/bin/bash -x

#a linha abaixo apenas define os caminhos da variável "path"

export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/etc

#####A EMBRATEl usa o TERRA para fazer o teste, você pode deixar esse IP

TERRA="200.176.2.10"

#####A GVT usa o UOL para fazer o teste, você pode deixar esse IP

UOL="200.98.249.120"

#####GW da Embratel - Aqui você diz o seu gateway da Embratel

ROTAEMBRATEL="189.55.160.1"

#####GW da GVT - Mesma coisa do de cima, diga o IP do seu gateway.

ROTAGVT="192.168.0.1"

#####IP fixo da embratel

IPEMBRATEL="189.55.166.142"

#####IP da gvt

IPGVT="192.168.0.252"

#####Interface da Embratel

ETHE="eth0"

#####Interface da GVT

ETHG="eth2"

#####IP do terra

TESTE="200.176.2.10"

#####Data atual

HORAATUAL=`date +%T`

DATAATUAL=`date +%Y-%m-%d`

DATA=$DATAATUAL" / "$HORAATUAL

#####Verifica a rota atual - Esse comando apenas verifica qual link você

ROTAATUAL=`(route -n | grep UG | awk -F' ' '{ print $2}')`

#####Deleta a rota - Ele irá deltar a rota do gateway, para só depois

ROTADEL="route del default gw "

##### Comando para adicionar a rota - Agora ele adiciona a nova rota para

ROTAADD="route add default gw "

#####Adiciona a rota do terra (Se a embratel estiver fora) - Agora começa

###a "moer", se a "embratel" estiver fora, ele joga todo mundo pra o "GVT"

route add -host $TERRA gw $ROTAEMBRATEL dev eth0

route add -host $UOL gw $ROTAGVT dev eth2

#####Se o terra pingar, o link esta OK - agora começa os testes de ping

if ( ping -I $ETHE -c 4 $TERRA > /dev/null ); then

#Cria os logs - vai gerar os logs

#echo $DATA >> /var/log/redundante.log

#echo "Link Embratel esta OK" >> /var/log/redundante.log

#####Se a rota default for igual a rota da embratel, nao faz nada

if [ "$ROTAATUAL" == "$ROTAEMBRATEL" ]; then

echo "Rota Embratel esta OK - $HORAATUAL" >> /var/log/redundante.log

#####Se a rota default for diferente da embratel, coloca a rota default

else

$ROTADEL $ROTAATUAL

$ROTAADD $ROTAEMBRATEL

cat /etc/firewall/networkEmbratel.txt > /etc/sysconfig/network

echo "#!/bin/bash" >> /etc/firewall/linkVolto.sh

echo "$ROTADEL$ROTAGVT" >> /etc/firewall/linkVolto.sh

echo "$ROTAADD$ROTAEMBRATEL" >> /etc/firewall/linkVolto.sh

chmod +x /etc/firewall/linkVolto.sh

/etc/firewall/linkVolto.sh

/bin/bash /etc/firewall/linkVolto.sh

rm -rf /etc/firewall/linkVolto.sh

echo "Link da Embratel esta no ar novamente OK - $HORAATUAL" >> /var/log/redund$

#Envia um email avisando que voltou o link da embratel

#mail -s "Cliente XYZ - O Link da EMBRATEL voltou a funcionar"

[email protected] < /etc/firewall/embratel.txt

fi

#Finaliza os logs

#echo "Fim da verificacao EMBRATEL" >> /var/log/redundante.log

#echo " " >> /var/log/redundante.log

#echo " " >> /var/log/redundante.log

else

#####Se pingar é porque o link esta ok

if ( ping -I $ETHG -c 4 $UOL >/dev/null ); then

#cria os logs

echo $DATA >> /var/log/redundante.log

echo "Link GVT esta OK" >> /var/log/redundante.log

##### Se a rota default for igual a da gvt, nao faz nada

if [ "$ROTAATUAL" == "$ROTAGVT" ]; then

echo "Rota Embratel ainda esta fora do ar" >> /var/log/redundante.log

echo " " >> /var/log/redundante.log

echo " " >> /var/log/redundante.log

##### Se a rota default for diferente da GVT, adiciona a rota defaul como

#####sendo da GVT

else

$ROTADEL $ROTAEMBRATEL

$ROTAADD $ROTAGVT

echo "Ativando a rota da GVT" >> /var/log/redundante.log

#Envia o email avisando o que link da Embratel caiu

# mail -s "Cliente XYZ - O Link da EMBRATEL fora do AR"

[email protected] < /etc/firewall/embratel_caiu.txt

# mail -s "Link da GVT esta no AR" [email protected] <

/etc/firewall/gvt.txt

fi

#Cria os logs

echo "Fim da verificacao GVT" >> /var/log/redundante.log

echo " " >> /var/log/redundante.log

echo " " >> /var/log/redundante.log

fi

fi

#####Deleta rotas do Terra

route del -host $TERRA gw $ROTAEMBRATEL dev eth0

route del -host $UOL gw $ROTAGVT dev eth2

Algumas frases estão cortadas pois eu tirei para arrumar os erros devido a quebra de linha, mas os principais estão como estão naquele ultimo script que você me passou, só modifiquei os IP's e os Gateways.

PS: O IP e o Gateway da GVT(Speedy) que coloquei ali não são os "certos", pois ainda não fixei o IP do speedy, então coloquei aqueles IPs para não ficr em branco.

Não sei se isso possa interferir no script, mas acho que não já que a rota principal está com o IP e GW certo, ele teria de puxar a conexão dali.

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois...

Demorei mas cheguei!

Então, quando eu executo ele não aparenta nenhum erro no script em si.

Quando ele vai tentar dar o ping:

ping -I eth0....

aparece em baixo

connect: network is unreachable

e no fim aparece algo de:

route del....

siocdelrt: no such process

Se eu tentar pingar algum site ou IP ele não pinga nada e os PC's da rede não acessam nada tambem.

Pior que eu me ferrei, pois o speedy para variar deu pau, ta MUITO³ lerdo não abre quase nenhum site, agora to quebrando a cabeça aqui para fazer funcionar o virtual =s

Abrass!

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...