rc.mailMyIp - Informa seu IP externo para o Gmail

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

[ Hits: 5.766 ]

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

teste

Script recolher log's servidor

Plugin BACULA

Make Knoppix

Diagnóstico de Rede


  

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