Guest User

script

a guest
Nov 26th, 2016
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.42 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. CUR_DATE=$(date "+%y-%m-%d %H:%M:%S")
  4.  
  5. n=0
  6. y=0
  7.  
  8. USERNAME="1"
  9. PASSWORD="2"
  10. DOMAIN="kathy.tk"
  11.  
  12. IP_WAN=$(dig +short myip.opendns.com @resolver1.opendns.com)
  13. IP_DNS=$(dig "$DOMAIN" | grep IN | awk '{match($0,/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/); ip = substr($0,RSTART,RLENGTH); print ip}')
  14.  
  15. LOG="/var/log/DNS_update.log"
  16. TMP="/tmp/DNS_update.tmp"
  17.  
  18. THE_COMMAND=$(curl -s http://"$USERNAME":"$PASSWORD"@freedns.afraid.org/nic/update?hostname="$DOMAIN"&myip="$IP_WAN")
  19.  
  20. MAKE_FILE() {
  21.  
  22. FILE="$1"
  23.  
  24.     if
  25.         [[ ! -f "$FILE" ]]; then
  26.         touch "$FILE"
  27.         echo "$CUR_DATE - Created $FILE" >> "$LOG"
  28.     fi
  29. }
  30.  
  31. CLEANUP_GOOD() {
  32.  
  33.     rm "$TMP"
  34.     echo "$CUR_DATE - WAN update SUCCESS" >> "$LOG"
  35. }
  36.  
  37. CLEANUP_BAD() {
  38.  
  39.     rm "$TMP"
  40.     echo "$CUR_DATE - WAN update FAILED: Maximum loops allowed reached" >> "$LOG"
  41. }
  42.  
  43. THE_LOOP() {
  44.  
  45. MAKE_FILE "$LOG"
  46. MAKE_FILE "$TMP"
  47.  
  48.     until [[ "$y" -eq 10 ]] || [[ "$n" -eq 1 ]]; do
  49.    
  50.         if
  51.             "$THE_COMMAND"; then
  52.             echo "$CUR_DATE - Running script" >> "$LOG"
  53.         else
  54.             echo "$CUR_DATE - Script was not run: $THE_COMMAND failed" >> "$LOG"
  55.         fi
  56.  
  57.         if
  58.             [[ "$IP_WAN" == "$IP_DNS" ]]; then
  59.             echo "$CUR_DATE - $IP_WAN matches $IP_DNS" >> "$LOG"
  60.             let n++
  61.             trap CLEANUP_GOOD exit 0
  62.         else
  63.             echo "$CUR_DATE - IP addresses do not match. Retrying.." >> "$LOG"
  64.             let y++
  65.             sleep 60
  66.         fi
  67.  
  68.     done
  69.  
  70. if
  71.     [[ "$y" -eq 10 ]]; then
  72.         trap CLEANUP_BAD exit 0
  73. fi
  74. }
  75.  
  76. THE_LOOP
Add Comment
Please, Sign In to add comment