De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Diego Almeida
Data de Publicação: 11 de Junho de 2004
Desenvolvi os script abaixos num momento de desespero que estava passando na empresa em que trabalho, na qual o ADSL vivia caindo, porém as quedas as vezes só eram superadas quando o modem fosse desligado e ligado novamente. Enquanto eu estivesse dentro da empresa não havia problema porém nos finais de semana isso também chegou a acontecer.. e então precisava de uma coisa que testasse a conexão (resolvi fazer isso usando o ping e perl). Se houvesse falha na conexão, realizasse o reset tanto do pptp quanto do modem (usando o expect e uma dica passada aqui mesmo a um tempo atrás).
Segue então os script para isso, com certeza não esta organizado e a lógica dele poderia ser melhorada , então esse é um serviço pra quem estiver com um tempinho disponível!
#!/usr/bin/perl -w #SCRIPT PARA RECONECTAR MODEM ALCATEL STP #Melhore ele a vontade! #Desenvolvido as pressas em 20/05/2004 por DiegoAlmeida :D #Efetua um ping no DNS principal do terra $ping1 = ``fping -r 1 200.176.2.10``; $ping1aa = substr("$ping1",-6); $ping1aa = "G $ping1aa"; if ("$ping1aa" eq "G alive\n"){ exit(0); } #Se responder sai agora mesmo , caso contrário tenta ver se consegue chegar #até o www.registro.br else { $ping2 = ``fping -r 1 www.registro.br``; $ping2a = substr("$ping2",-6); $ping2a = "G $ping2a"; if ("$ping2a" eq "G alive\n"){ exit(0); } #Mesma coisa de antes..porém da 5s para refletir um pouco else { sleep(5); $ping3 = ``fping -r 1 www.uol.com.br``; $ping3a = substr("$ping3",-6); $ping3a = "G $ping3a"; if ("$ping3a" eq "G alive\n"){ exit(0); } #Realmente a conexão não esta legal,o modem será reiniciado else { printf "ERRO NA CONEXAO..RESETANDO MODEM \n"; #Como uso o pptp , primeiro fecho ele e depois do o restart ``killall -9 pptp ; killall -9 pppd``; #reiniciado o modem #INDICAR ONDE ESTA O RESET!!! $lag = ``/root/modem/reset``; #Se desejar ver o que houve no contato com o MODEM, descomente a linha a seguir #printf "$lag"; printf "ESPERANDO MODEM VOLTAR...Aguarde 60s \n"; #Espera 60s até o modem alinhar sleep(60); printf "EFETUANDO CONEXAO \n"; #Então,com o modem alinhado , efetua a conexão denovo. ``pptp 10.0.0.138&``; exit(0); } } }
#!/usr/bin/expect -f #Se o ip do modem for o 10.0.0.138,deixe como esta. spawn telnet 10.0.0.138 set timeout 5 expect { "ser :" { #send_user "Fazendo o login.." send "root \r" exp_continue } sleep 3 "assword :" { ####################################################################### #AJUSTE A SENHA - ESTA QUE ESTA É A DEFAULT DO MODEM (keycode&senh@01)# send "keycode&senh@01\r" ####################################################################### send ":system reboot\r" exp_continue } "=>" { send_user "ok" send "system\r" send "reboot\r\n" } timeout { #Como o modem parou , a saída é do timeout mesmo. send_user "Pronto... \n" } }
E é isto, qualquer novidade que adicionar aos scripts, se achar legal mande para mim , <diego sl (a) email com br>.
Diego Almeida GnuPGKey at search.keyserver.net diego dot sl at email dot com dot br
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários