Advertisement
Guest User

Untitled

a guest
Jan 2nd, 2016
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.10 KB | None | 0 0
  1. #!/bin/bash
  2. ##################################################################
  3. # A Project of TNET Services, Inc
  4. #
  5. # Title:     WiFi_Check
  6. # Author:    Kevin Reed (Dweeber)
  7. #            [email protected]
  8. # Project:   Raspberry Pi Stuff
  9. #
  10. # Copyright: Copyright (c) 2012 Kevin Reed <[email protected]>
  11. #            https://github.com/dweeber/WiFi_Check
  12. #
  13. # Purpose:
  14. #
  15. # Script checks to see if WiFi has a network IP and if not
  16. # restart WiFi
  17. #
  18. # Uses a lock file which prevents the script from running more
  19. # than one at a time.  If lockfile is old, it removes it
  20. #
  21. # Instructions:
  22. #
  23. # o Install where you want to run it from like /usr/local/bin
  24. # o chmod 0755 /usr/local/bin/WiFi_Check
  25. # o Add to crontab
  26. #
  27. # Run Every 5 mins - Seems like ever min is over kill unless
  28. # this is a very common problem.  If once a min change */5 to *
  29. # once every 2 mins */5 to */2 ...
  30. #
  31. # */5 * * * * /usr/local/bin/WiFi_Check
  32. #
  33. ##################################################################
  34. # Settings
  35. PATH="/usr/sbin:/sbin:$PATH"
  36. echo "Current Path(s)"
  37. echo $PATH
  38. # Where and what you want to call the Lockfile
  39. lockfile='/tmp/ram/WiFi_Check.pid'
  40. # Which Interface do you want to check/fix
  41. wlan='wlan0'
  42. ##################################################################
  43. echo "Starting WiFi check for $wlan"
  44. date
  45. echo
  46.  
  47. # Check to see if there is a lock file
  48. if [ -e $lockfile ]; then
  49.     # A lockfile exists... Lets check to see if it is still valid
  50.     pid=$(cat $lockfile)
  51.     if kill -0 &>1 > /dev/null $pid; then
  52.         # Still Valid... lets let it be...
  53.         echo "Process still running, Lockfile valid"
  54.         exit 1
  55.     else
  56.         # Old Lockfile, Remove it
  57.         echo "Old lockfile, Removing Lockfile"
  58.         rm $lockfile
  59.     fi
  60. fi
  61. # If we get here, set a lock file using our current PID#
  62. echo "Setting Lockfile"
  63. echo $$ > $lockfile
  64.  
  65. # We can perform check
  66. echo "Performing Network check for $wlan"
  67. broken=0
  68. if ifconfig $wlan | grep -q "inet addr:" ; then
  69.     echo "Network is seemingly Okay"
  70.     echo
  71.     echo "Ping Test:"
  72.     ping 10.0.0.1 -c 1
  73.     if [ $? -eq 0 ];then
  74.         echo "  Wifi Working"
  75.     else
  76.         echo "  Wifi seems down"
  77.         ping 10.0.0.1 -c 1
  78.         if [ $? -eq 0 ];then
  79.             echo "False alarm"
  80.         else
  81.             echo "Wifi Down"
  82.             broken=1
  83.         fi
  84.     fi
  85.     echo
  86. else
  87.     broken=1
  88. fi
  89. if [ $broken -eq 1 ];then
  90.     echo "Network connection down! Attempting reconnection."
  91.     ifdown $wlan
  92.     sleep 5
  93.     ifup --force $wlan
  94.     ifconfig $wlan | grep "inet addr"
  95.     sleep 10
  96. fi
  97.  
  98. echo
  99. echo "Current Setting:"
  100. ifconfig $wlan | grep "inet addr:"
  101. echo
  102.  
  103. # Check is complete, Remove Lock file and exit
  104. echo "Process is complete, removing lockfile"
  105. rm $lockfile
  106.  
  107. # Backup Log
  108. logFile="/tmp/ram/wifiCheck"
  109. if [ -f $logFile ];then
  110.     if [ -f $logFile.log ];then
  111.         if [ -f $logFile.log.old ];then
  112.             if [ -f $logFile.log.older ];then
  113.                 cp $logFile.log.older $logFile.log.oldest
  114.             fi
  115.             cp $logFile.log.old $logFile.log.older
  116.         fi
  117.         cp $logFile.log $logFile.log.old
  118.     fi
  119.     cp $logFile $logFile.log
  120. fi
  121. exit 0
  122.  
  123. ##################################################################
  124. # End of Script
  125. ##################################################################
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement