Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- ##################################################################
- # A Project of TNET Services, Inc
- #
- # Title: WiFi_Check
- # Author: Kevin Reed (Dweeber)
- # Project: Raspberry Pi Stuff
- #
- # Copyright: Copyright (c) 2012 Kevin Reed <[email protected]>
- # https://github.com/dweeber/WiFi_Check
- #
- # Purpose:
- #
- # Script checks to see if WiFi has a network IP and if not
- # restart WiFi
- #
- # Uses a lock file which prevents the script from running more
- # than one at a time. If lockfile is old, it removes it
- #
- # Instructions:
- #
- # o Install where you want to run it from like /usr/local/bin
- # o chmod 0755 /usr/local/bin/WiFi_Check
- # o Add to crontab
- #
- # Run Every 5 mins - Seems like ever min is over kill unless
- # this is a very common problem. If once a min change */5 to *
- # once every 2 mins */5 to */2 ...
- #
- # */5 * * * * /usr/local/bin/WiFi_Check
- #
- ##################################################################
- # Settings
- PATH="/usr/sbin:/sbin:$PATH"
- echo "Current Path(s)"
- echo $PATH
- # Where and what you want to call the Lockfile
- lockfile='/tmp/ram/WiFi_Check.pid'
- # Which Interface do you want to check/fix
- wlan='wlan0'
- ##################################################################
- echo "Starting WiFi check for $wlan"
- date
- echo
- # Check to see if there is a lock file
- if [ -e $lockfile ]; then
- # A lockfile exists... Lets check to see if it is still valid
- pid=$(cat $lockfile)
- if kill -0 &>1 > /dev/null $pid; then
- # Still Valid... lets let it be...
- echo "Process still running, Lockfile valid"
- exit 1
- else
- # Old Lockfile, Remove it
- echo "Old lockfile, Removing Lockfile"
- rm $lockfile
- fi
- fi
- # If we get here, set a lock file using our current PID#
- echo "Setting Lockfile"
- echo $$ > $lockfile
- # We can perform check
- echo "Performing Network check for $wlan"
- broken=0
- if ifconfig $wlan | grep -q "inet addr:" ; then
- echo "Network is seemingly Okay"
- echo
- echo "Ping Test:"
- ping 10.0.0.1 -c 1
- if [ $? -eq 0 ];then
- echo " Wifi Working"
- else
- echo " Wifi seems down"
- ping 10.0.0.1 -c 1
- if [ $? -eq 0 ];then
- echo "False alarm"
- else
- echo "Wifi Down"
- broken=1
- fi
- fi
- echo
- else
- broken=1
- fi
- if [ $broken -eq 1 ];then
- echo "Network connection down! Attempting reconnection."
- ifdown $wlan
- sleep 5
- ifup --force $wlan
- ifconfig $wlan | grep "inet addr"
- sleep 10
- fi
- echo
- echo "Current Setting:"
- ifconfig $wlan | grep "inet addr:"
- echo
- # Check is complete, Remove Lock file and exit
- echo "Process is complete, removing lockfile"
- rm $lockfile
- # Backup Log
- logFile="/tmp/ram/wifiCheck"
- if [ -f $logFile ];then
- if [ -f $logFile.log ];then
- if [ -f $logFile.log.old ];then
- if [ -f $logFile.log.older ];then
- cp $logFile.log.older $logFile.log.oldest
- fi
- cp $logFile.log.old $logFile.log.older
- fi
- cp $logFile.log $logFile.log.old
- fi
- cp $logFile $logFile.log
- fi
- exit 0
- ##################################################################
- # End of Script
- ##################################################################
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement