
Já abordámos uma vez aqui a questão do famoso serviço DynDNS obrigar as contas gratuitas a terem que se autenticar no site pelo menos uma vez por mês. Até foi apresentada uma alternativa fiável mas… o problema é que o serviço DynDNS é muito utilizado e a maior parte dos routers para PMEs quase só permitem este serviço para se poder configurar o serviço de DNS dinâmico. Então temos duas opções: ou autenticarmo-nos no site do DyndDNS de 15 em 15 dias (booooring!) ou arranjamos um script que faça isso por nós 🙂
Parto do princípio que tem o programa cron instalado e com o serviço ativo.
Na consola do nosso linux, como root, criamos um documento novo:
nano /etc/cron.weekly/dyndnslogin.sh e inserimos o seguinte texto:
#!/bin/bash########################################################################## dyndns auto-login################################################################################################################################################# Conta DynDNS (não é o email mas sim o username)USERNAME="username"PASSWORD="password"######################################################################### VariaveisInPROGNAME=dyndnsloginCOOKIE=`mktemp --tmpdir="/tmp" -t ${PROGNAME}_cookie_***XXXX`OUTPUT=`mktemp --tmpdir="/tmp" -t ${PROGNAME}_output_***XXXX`USERAGENT="Mozilla/5.0"######################################################################### MainMULTIFORM=`curl -s -k -A $USERAGENT -c $COOKIE https://account.dyn.com \ | awk -F\' '/multiform/{ print $6 }'`curl -s -k --location -A "$USERAGENT" -b $COOKIE -c $COOKIE -o $OUTPUT \--data "username=$USERNAME&password=$PASSWORD&iov_id=&sub mit=Log+in&multiform=$MULTIFORM" \https://account.dyn.com/if grep -E "(Welcome|Hi).*$USERNAME" $OUTPUT > /dev/null 2>&1thenecho Login com sucessoelseecho Login falhouFAILED="true"firm $COOKIErm $OUTPUTif [ "$FAILED" = "true" ]thenexit 1fi# EOF |
Não esquecer de alterar os dados de username e password logo no início do script para a conta que pretendemos usar.
Em seguida salvamos e damos permissão de execução:
chmod +x /etc/cron.weekly/dyndnslogin.sh
Podemos testar executando:
sh /etc/cron.weekly/dyndnslogin.sh
Se tudo correr bem vão receber a resposta
Login com sucesso
E assim semanalmente o nosso script vai fazer o login por nós.
Se isto vai durar muito tempo? Não sei… depende da DynDNS. Mas para já funciona muito bem!