rc.mailMyIp - Informa seu IP externo para o Gmail

Publicado por /dev/movebo (última atualização em 09/10/2010)

[ Hits: 5.645 ]

Homepage: http://devmovebo.blogspot.com

Download rc.mailMyIp




Informa seu IP externo para o Gmail.

- Mantém os endereços sincronizados para acesso via SSH através de IP dinâmico.
- Requer msmtp configurado para o Gmail e um script para automatizar a leitura e acesso no SSH server.
- Mais detalhes em < http://bit.ly/deB0dO > ou < http://www.vivaolinux.com.br/artigo/Receba-seu-IP-externo-via-email-ou-ensine-o-bash-a-ler-e-enviar-... >

  



Esconder código-fonte

#!/bin/bash
#
####################################################
# rc.mailMyIp
# (C) Copyleft 2010 /dev/movebo
# movebo{no spam}ime.usp.br
# Informa seu IP externo para o gmail
# Mantém os endereços sincronizados para SSH
# atraves de IP dinamico.
####################################################

###############
# DEFINITIONS #
###############

FILE=/tmp/.mailMyIP
DATE=`date +"%F %H:%M:%S"`
ADDRS="zeh@gmail.com"
MSMTP=`which msmtp`
PING=`which ping`
SED=`which sed`
PRINTF=`which printf`
IFCONFIG=`which ifconfig`


####################
# FUNCTIONS: BEGIN #
####################

MSG() {
   BODY="Subject: NAVI has booted, check your IP\nDate: $DATE\n\nNAVI was booted at $DATE\nNAVI IP=$IP\n"
    echo "$BODY" > $FILE
    echo "$BODY" | $MSMTP -C /root/.msmtprc $ADDRS
}

mailMyIp() {
   if [ -f $FILE ]; then
      OLDIP=`cat $FILE | sed '/IP=/!d;s/.*=//g'`
      [ "$IP" != "$OLDIP" ] && MSG
   else   
      MSG      
   fi
}

OK() {
   echo -e "\{FONTE}33[60G[  \e[32;1mOK\e[0m  ]"
}

FAIL() {
   echo -e "\{FONTE}33[60G[ \e[31;1mFAIL\e[0m ]"
}
 
GET_IP() {
   IP=`curl -s http://www.whatismyip.com/automation/n09230945.asp`
   echo -n $IP
}

TEST_INET() {
   ETH0=`$IFCONFIG eth0 | sed '/inet\ /!d;s/.*r://g;s/\..*$//g'`

   if [ $ETH0 -ne 192 ]; then
      echo "Network not available"
      exit -1
   else
      printf "%b" "Testing your Internet Connection:"
      PING_COUNT=`$PING -l3 -w1 -c3 200.160.4.2 2> /dev/null | $SED '/rec/!d;s/.*ted,\ //g;s/\ .*//g'`
   fi
}

##################
# FUNCTIONS: END #
##################


case "$1" in
'start')
   TEST_INET   

   if [ $PING_COUNT -eq 0 ]; then
      FAIL
   else
      OK
      echo -n "   Retrieving external IP:   "
      GET_IP
      
      if [ -n "$IP" ]; then
         OK
         echo -en "   Retrieving IP from gmail: "
         NAVI_IP=`$HOME/bin/naviip`

         if [ -n "$NAVI_IP" ]; then
            echo -n "$NAVI_IP"
            OK
         else
            FAIL
         fi

         if [ "$IP" != "$NAVI_IP" ]; then
            echo -en "   Mailing the new IP to $ADDRS"
            MSG
            OK
         else
            echo "   Nothing to do."
         fi
      else
         FAIL
      fi   
   fi
   ;;
'check')
   TEST_INET > /dev/null
   if [ $PING_COUNT -ne 0 ]; then
      GET_IP >> /dev/null
      if [ -n "$IP" ]; then
         NAVI_IP=`/usr/local/bin/naviip`
         [ "$IP" != "$NAVI_IP" ] && MSG
      fi
   fi
   ;;
*)
   echo "usage $0 {start|check}"
esac

Scripts recomendados

Testando se a conexão com a Internet está ativa

Script para atualizar o sistema

Script para desligar o servidor

Conversor do VMware para o VirtualBox

Automatizando com Script-Expect


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts