Teste de conexão no Velox
Publicado por Fausto Jacome 20/07/2009
[ Hits: 8.464 ]
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 para instalação completa do XEN 3.4.0 através do source ( fonte ).
Backup Base de Dados PostgreSQL [pg_dump]
Organizador da saída do objdump
Converter arquivos CBR para PDF
Ligando/Desligando máquina pela rede
Nenhum comentário foi encontrado.
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
E a guerra contra bots continua
Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário
Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Não consigo acessar os modos de desempenho (2)
Ubuntu — tentando iniciar o windows? (0)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba