Teste de conexão no Velox
Publicado por Fausto Jacome 20/07/2009
[ Hits: 9.011 ]
Tenho um servidor que fica ligado 24 horas na empresa que trabalho. Configurado com o no-ip, squid e tudo mais. Quando o velox cai, é aquele problemão. Aqui vai um script para ser colocado no cron para testar a conexão e manter a máquina conectada.
Com a conexão configurada com a ajuda do pppoeconf, coloque o script na pasta /usr/local/sbin/. Edite o crontab e coloque para rodar de minuto em minuto, conforme a linha a seguir:
* * * * * /usr/local/sbin/velox.sh > /dev/null 2>&1
#!/bin/sh
# ###############################################
# Script para autenticacao do Velox no linux
#
# +---------------------------------+ Sim +------+
# | Ja esta conectado ? +------>| Sai >
# +----------------+----------------+ +------+
# | Nao
# +<-------------------------+
# | |
# +----------------+----------------+ |
# | Tenta conexao + |
# | - poff ppp0 + |
# | - pon dsl-provider + |
# +----------------+----------------+ |
# | |
# +---------------------------------+ Nao |
# | Conseguiu conectar ? +---------+
# +----------------+----------------+
# | Tenta 3 vezes
# | Sim
# +---+---+
# | Sai |
# +-------+
#
# ###############################################
# ################################################################
# Definicoes dos comandos utilizados para conexao e autenticacao
# ################################################################
# Descomente para debug
# set -xv
# ################################################################
# Definicoes dos comandos utilizados para conexao e autenticacao
# ################################################################
# Caminho completo: poff e pon
# -----------------------------------------------------------
PPPOE_POFF=/usr/bin/poff
PPPOE_PON=/usr/bin/pon
# Caminho completo: sleep
# -----------------------------------------------------------
PAUSE_SLEEP=/bin/sleep
# Caminho completo: ping (necessario para testar a conexao apos autenticar)
# ------------------------------------------------------------------------------
PING=/bin/ping
# Hosts para teste de ICMP PING (um deles tem que responder ao menos)
# *******************************************************************
# Voce pode utilizar qualquer host ou use estes como padrao.
PHOST1='ns.dns.br'
PHOST2='ns1.dns.br'
PHOST3='a.root-servers.net'
# Parametros adicionais (nao altere a nao ser que voce saiba
# exatamente o que esta fazendo)
# ----------------------------------------------------------
PARAM_PING='-c 1'
# Quem sou eu ?..
MEUNOME="`basename $0`"
# Para testar se a interface pppoe ja esta ativa
# ----------------------------------------------
IFCONFIG="/sbin/ifconfig"
PPPOE_INTRF="ppp0"
PPPOE_POFF_PARAM="-a"
PPPOE_PON_PARAM="dsl-provider"
TEMPO_SLEEP="10s"
TENTATIVAS=3
AUXILIAR=$TENTATIVAS
###############################################################################
# FIM DA CONFIGURACAO
###############################################################################
# Funcoes do script
# -------------------------------------------------------------------------
verifica_programas ()
{
echo
echo "Verificando a existencia dos programas necessarios para o script ..."
echo
if [ -x $PING ]; then
echo "OK! \"Ping\" encontrado em $PING"
else
echo "$MEUNOME: ERRO! o ping NAO foi encontrando em $PING."
echo " Edite o script !!"
exit 2
fi
if [ -x $PPPOE_POFF ]; then
echo "OK! \"POFF\", encontrado em $PPPOE_POFF"
else
echo "$MEUNOME: ERRO! o curl NAO foi encontrado em $PPPOE_POFF."
echo "Edite o script !"
exit 2
fi
if [ -x $PPPOE_PON ]; then
echo "OK! \"PON\", encontrado em $PPPOE_PON"
else
echo "$MEUNOME: ERRO! o curl NAO foi encontrado em $PPPOE_PON."
echo "Edite o script !"
exit 2
fi
}
#-------------------------------------------------------------------------
testa_ppp0 ()
{
echo "Ligando a conexao PPPOE..."
# Testa se existe a interface ppp0
if ( ! ($IFCONFIG $PPPOE_INTRF > /dev/null 2>&1) ); then
# A interface nao existe, vamos tentar criar
if [ -x "$PPPOE_POFF" ]; then
$PPPOE_POFF $PPPOE_POFF_PARAM # Desliga a interface ppp0
else
if [ $? -ne 0 ]; then
echo "$MEUNOME: Erro na execucao do comando $PPPOE_POFF".
echo " Verifique a configuracao!"
exit 1
fi
fi
if [ -x "$PPPOE_PON" ]; then
$PPPOE_PON $PPPOE_PON_PARAM # Executa as configuracoes do pppoeconf
else
if [ $? -ne 0 ]; then
echo "$MEUNOME: Erro na execucao do comando $PPPOE_PON".
echo " Verifique a configuracao!"
exit 1
fi
fi
fi
}
#-------------------------------------------------------------------------
# Autenticacao do usuario no provedor
# ***********************************
echo "################################################################################"
echo " Script de autenticacao Velox "
echo "################################################################################"
echo
verifica_programas
echo
echo "Host Teste ICMP PING 1 = $PHOST1"
echo "Host Teste ICMP PING 2 = $PHOST2"
echo "Host Teste ICMP PING 3 = $PHOST3"
echo
# Verificando se ja esta autenticado...
echo "Verificando se ja esta autenticado... Por favor aguarde !!"
if ( ($PING $PARAM_PING $PHOST1 > /dev/null 2>&1) ||
($PING $PARAM_PING $PHOST2 > /dev/null 2>&1) ||
($PING $PARAM_PING $PHOST3 > /dev/null 2>&1) ); then
echo "$MEUNOME: Ja autenticado. Saindo..."
exit 0
fi
echo
echo "Nao esta autenticado! Realizando a autenticacao..."
echo "!!! **************** AGUARDE ***************** !!!"
# Comando para autenticacao. Tenta 3 vezes.
until [ $TENTATIVAS -lt 1 ]; do
echo " ====> Tentativa $TENTATIVAS/$AUXILIAR <===="
testa_ppp0
$PAUSE_SLEEP $TEMPO_SLEEP
if ( ($PING $PARAM_PING $PHOST1 > /dev/null 2>&1) ||
($PING $PARAM_PING $PHOST2 > /dev/null 2>&1) ||
($PING $PARAM_PING $PHOST3 > /dev/null 2>&1) ); then
echo "$MEUNOME: OK! Autenticado no Velox ..."
exit 0
else
echo "$MEUNOME: ERRO! Nao consegui conectar..."
let "TENTATIVAS = TENTATIVAS - 1"
fi
done
echo "$MEUNOME: Autenticacao falhou em $AUXILIAR tentativas no Velox ..."
echo " Verifique se a luz DSL esta acesa ou"
echo " as configuracoes do dsl-provider."
exit 0
#
# Mantenha descomentado mesmo com o debug comentado no inicio. Isto forca a
# finalizacao do debug.
set +xv
inSANE - Script para usar Scanner
Abrindo Sessão Cluster Beowulf
Nenhum comentário foi encontrado.
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
O Abismo entre o Código e o Chão: Saltos Tecnológicos e a Exclusão Estrutural no Brasil
Utilizando a Ferramenta xcheckrestart no Void Linux
Pisando no acelerador do Linux Mint: Kernel XanMod, zRAM e Ajustes de Swap
Como compilar kernel no Linux Mint
Abrir um arquivo URL pelo Clipper (8)
Seno, Coseno, Tangente em CLIPPER (1)
Inserir uma URL num arquvo pelo Ubuntu (CLIPPER) (0)
VMWare Player não conecta na rede nem consigo intercambiar arquivos (1)









