Teste de conexão no Velox
Publicado por Fausto Jacome 20/07/2009
[ Hits: 8.579 ]
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
Script simples para adicionar usuarios do djbdns
Atualizador de sistema multipla escolha
sincleg: sincronizador de legendas (srt)
ppmtolss16 converte imagens para o formato lss
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Melhorando a precisão de valores flutuantes em python[AJUDA] (1)
Instalação Uefi com o instalador clássico do Mageia (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta