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

Script - monitorando servidor

Apostila interativa de linux (incompleto)

procurar palavras dentro de todos os ficheiros de sub directorias

Limpando memória em cache do sistema!!!

Filtrando processos facilmente com psaux ( ps aux + grep + wc -l)

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.