Guest User

rc.mailMyIp

a guest
Sep 13th, 2010
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.02 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. ###############
  4. # DEFINITIONS #
  5. ###############
  6.  
  7. FILE=/tmp/.mailMyIP
  8. DATE=`date +"%F %H:%M:%S"`
  9. MSMTP=`which msmtp`
  10. PING=`which ping`
  11. SED=`which sed`
  12. PRINTF=`which printf`
  13. IFCONFIG=`which ifconfig`
  14.  
  15.  
  16. ####################
  17. # FUNCTIONS: BEGIN #
  18. ####################
  19.  
  20. MSG() {
  21.     BODY="Subject: NAVI has booted, check your IP\nDate: $DATE\n\nNAVI was booted at $DATE\nNAVI IP=$IP\n"
  22.     echo "$BODY" > $FILE
  23.     echo "$BODY" | $MSMTP -C /root/.msmtprc $ADDRS
  24. }
  25.  
  26. mailMyIp() {
  27.     if [ -f $FILE ]; then
  28.         OLDIP=`cat $FILE | sed '/IP=/!d;s/.*=//g'`
  29.         [ "$IP" != "$OLDIP" ] && MSG
  30.     else   
  31.         MSG    
  32.     fi
  33. }
  34.  
  35. OK() {
  36.     echo -e "\033[60G[  \033[32;1mOK\033[0m  ]"
  37. }
  38.  
  39. FAIL() {
  40.     echo -e "\033[60G[ \033[31;1mFAIL\033[0m ]"
  41. }
  42.  
  43. GET_IP() {
  44.     IP=`curl -s http://myip.com.br/index2.php | sed '/Seu\ IP/!d;s/.*\IP://g;s/<.*//g;s/\ //g'`
  45.     echo -n $IP
  46. }
  47.  
  48. TEST_INET() {
  49.     ETH0=`$IFCONFIG eth0 | sed '/inet\ /!d;s/.*r://g;s/\..*$//g'`
  50.  
  51.     if [ $ETH0 -ne 192 ]; then
  52.         echo "Network not available"
  53.         exit -1
  54.     else
  55.         printf "%b" "Testing your Internet Connection:"
  56.         PING_COUNT=`$PING -l3 -w1 173.194.34.104 2> /dev/null | $SED '/rec/!d;s/.*ted,\ //g;s/\ .*//g'`
  57.     fi
  58. }
  59.  
  60. ##################
  61. # FUNCTIONS: END #
  62. ##################
  63.  
  64.  
  65. case "$1" in
  66. 'start')
  67.     TEST_INET  
  68.  
  69.     if [ $PING_COUNT -eq 0 ]; then
  70.         FAIL
  71.     else
  72.         OK
  73.         echo -n "   Retrieving external IP:   "
  74.         GET_IP
  75.        
  76.         if [ -n "$IP" ]; then
  77.             OK
  78.             echo -en "   Retrieving IP from gmail: "
  79.             NAVI_IP=`$HOME/bin/naviip`
  80.  
  81.             if [ -n "$NAVI_IP" ]; then
  82.                 echo -n "$NAVI_IP"
  83.                 OK
  84.             else
  85.                 FAIL
  86.             fi
  87.  
  88.             if [ "$IP" != "$NAVI_IP" ]; then
  89.                 echo -en "   Mailing the new IP to $ADDRS"
  90.                 MSG
  91.                 OK
  92.             else
  93.                 echo "   Nothing to do."
  94.             fi
  95.         else
  96.             FAIL
  97.         fi 
  98.     fi
  99.     ;;
  100. 'check')
  101.     TEST_INET 2&>1 /dev/null
  102.     if [ $PING_COUNT -ne 0 ]; then
  103.         GET_IP 2&>1 /dev/null
  104.         if [ -n "$IP" ]; then
  105.             NAVI_IP=`/usr/local/bin/naviip`
  106.             [ "$IP" != "$NAVI_IP" ] && MSG
  107.         fi
  108.     fi
  109.     ;;
  110. *)
  111.     echo "usage $0 {start|check}"
  112. esac
Advertisement
Add Comment
Please, Sign In to add comment