Pular para o conteúdo

rc.mailMyIp - Informa seu IP externo para o Gmail

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-... >

/dev/movebo letifer
Hits: 6.149 Categoria: Shell Script Subcategoria: Avançado
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

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-... >

Download rc.mailMyIp Enviar nova versão

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 "\
#!/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 "\
#!/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
33[60G[  \e[32;1mOK\e[0m  ]" } FAIL() {    echo -e "\
#!/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
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
33[60G[  \e[32;1mOK\e[0m  ]" } FAIL() {    echo -e "\
#!/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 "\
#!/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
33[60G[  \e[32;1mOK\e[0m  ]" } FAIL() {    echo -e "\
#!/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
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
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

SSH manager

DHCP Configurator

Criação de usuários no Linux

Capturar movimentação no FTP

Copia arquivos distribuidos em pastas diferentes para uma única pasta.

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.