getIP.sh: Enviando seu IP via email

Eu sempre acesso o meu micro remotamente. Sempre. Tenho IP dinâmico e uma conta no DynDns.org que o meu roteadorzinho está sempre atualizando, porém essa semana ele não atualizou o endereço, deu uma mensagem que não conseguiu e só! O router não é aberto o suficiente para que eu possa debugar melhor.

Resultado, escrevi esse script para verificar meu ip no site http://whatismyip.com, e, se ele tiver sido alterado, ele envia um e-mail para mim com o novo IP.

Bem simples, já devem ter milhares de scripts assim mundo afora.

De qualquer forma deixo ele aqui para quem quiser.

Pré Requisitos:
Navegador modo texto (recomendado: links)
E-mail modo texto (recomendado: nail)

Primeira coisa é configurar o nail para enviar os emails pra você, adicione as seguintes linhas no ~/.mailrc (dependendo da versão pode ser ~/.nailrc)

account <NOME DA CONTA> {
set imap-use-starttls
set smtp-use-starttls
set folder=imap://<SEU USUARIO>@gmail.com
set smtp=smtp://smtp.gmail.com:587
set from="<SEU USUARIO>@gmail.com <Descrição Opcional>"
set smtp-auth=login
set smtp-auth-user=<SEU USUARIO>
set smtp-auth-password=<SUA SENHA>
set MBOX=~/.maildir
}

E aqui está o script:

https://sourceforge.net/projects/getip-script/files/

É só baixar o getIP.sh e colocar pra correr na crontab, normalmente eu deixo ele ser executado de 5 em 5 minutos, dessa forma:

0,5,10,15,20,25,30,35,40,45,50,55 * * * * /opt/getIP/getIP.sh

Mas antes de sair executando, é altamente aconselhável checar o valor das variáveis do script e configurar de acordo com o que for melhor pra você e para o seu sistema:

PREVIOUS_IP é Arquivo contendo o IP anterior a essa execução do script, será sempre gerado quando o script for executado e é usado para que o script possa comparar o IP anterior com o atual:

PREVIOUS_IP='/opt/getIP/previous_ip'

Web Browser modo texto que será usado pelo script:

LINKS='/usr/bin/links'

Opções que devem ser passada para o web browser:

LINKS_OPTIONS='-dump'

Arquivo de log:

LOG='/opt/getIP/getIP.log'

Arquivo de temporário (é sempre apagado):

TMPFILE='/opt/getIP/ip.tmp'

Segundo arquivo temporário ( é sempre apagado):

TMPFILE2='/opt/getIP/mail.tmp'

Email ao qual se devem enviar as mudanças de IP:

TOEMAIL='<SEU EMAIL>'

Nome da conta de email definida em ~/.mailrc:

EMAILACCOUNT='<NOME DA CONTA>'

Aplicação de email que deve ser utilizada pelo script:

MAIL='/usr/bin/nail'

Tamanho máximo, em linhas, do arquivo de log:

MAXLOGLINES=5000

LOGTMP é um arquivo de log temporário que será gerado e apagado em cada execução do script:

LOGTMP='/opt/getIP/getIP-2.log'

IPSITE é o endereço que vamos acessar para descobrir nosso IP, é útil caso a máquina esteja numa sub-rede e não tenha um IP válido na internet:

IPSITE='http://whatismyip.com/automation/n09230945.asp'

MAILERROR é a mensagem que o nail gera quando não consegue enviar um email, caso encontremos essa mensagem na última linha do log vamos enviar um email outra vez mesmo que o email anterior seja o mesmo que o atual:

MAILERROR=". . . message not sent."

O $USEIF se estiver como “false” vai usar o IP retornado pelo acesso a página definida em $IPSITE, senão vai usar o output do ifconfig, essa opção é útil para máquinas que estão em uma sub-rede e que não tem IPs válidos na internet:

USEIF="false"

Eu criei um projeto no sourceforge.net para esse script, licensiado sobre GPL, portanto qualquer um que achar o script útil e quiser fazer melhorias está muito bem vindo!

O projeto está em: 

https://sourceforge.net/projects/getip-script
Esse post foi publicado em Linux, Solaris. Bookmark o link permanente.

2 respostas para getIP.sh: Enviando seu IP via email

  1. manah disse:

    Como instalar o nail no ubuntu?

    Valeu!





     
     
     
     
     
     
    

Deixe um comentário