Teste de conexão no Velox
Publicado por Fausto Jacome 20/07/2009
[ Hits: 8.833 ]
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
ZFFmpeg - Conversor e editor de vídeos
Backup com rsync em maquina da rede.
Verificar o tipo dos arquivo de um diretório
Nenhum comentário foi encontrado.
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Programa fora de escala na tela do pc (10)
Fedora KDE plasma 42 X Módulo de segurança BB (Warsaw-2) (1)
O programa assinador digital (1)









