Pré-requisitos
Instale sendEmail . É um cliente de e-mail SMTP de linha de comando leve. Vamos usá-lo para enviar e-mails de um script, usando uma conta do Gmail.
sudo apt-get install sendemail libio-socket-ssl-perl libnet-ssleay-perl
Crie o script
Crie um arquivo chamado " ip-notify.sh " em algum lugar, por exemplo, em um diretório " Scripts " em sua pasta pessoal; torne-o executável e abra-o para edição.
mkdir -p ~/Scripts && touch ~/Scripts/ip-notify.sh && chmod a+x ~/Scripts/ip-notify.sh && gedit ~/Scripts/ip-notify.sh
Insira o seguinte texto no arquivo:
#!/bin/bash
# Modify the following values!
SENDERNAME="Computer" # This is the name that will show in the 'From' field. Purely esthetic.
RECIPIENTNAME="Your Name" # This is the name that will show in the 'To' field. Also purely esthetic.
GMAILADDRESS="[email protected]" # This is your Gmail address.
GMAILUSER="someemail" # This is your Gmail username, without the '@gmail.com' part.
GMAILPASS="password" # This is your Gmail password.
# You can stop modifying here
DIR=/tmp/
CURIP=dnsexit-ip.txt
IPLOG=/var/log/dnsexit.log
SMTPSERVER="smtp.gmail.com:587"
if [[ $(find $DIR -mmin -2 -name $CURIP) ]];
then
echo "$CURIP has been modified in the last two minutes."
# Send an email
sendemail -u "IP Address" -m "IP address has changed!" -f "$SENDERNAME <$GMAILADDRESS>" -t "$RECIPIENTNAME <$GMAILADDRESS>" -s $SMTPSERVER -xu $GMAILUSER -xp $GMAILPASS -a $DIR$CURIP $IPLOG
fi
Depois disso, salve e feche o arquivo.
Execute o script periodicamente
Nós vamos executar este script a cada dois minutos. Abra seu crontab.
crontab -e
Adicione a seguinte linha ao final do arquivo:
*/2 * * * * bash ~/Scripts/ip-notify.sh
Você terminou!
Se tudo correr bem, você deverá receber atualizações por e-mail quando o endereço IP da sua máquina mudar.