Skip to content

Instantly share code, notes, and snippets.

@G10DRAS
Created April 5, 2017 01:27
Show Gist options
  • Save G10DRAS/ad82051b4ea8e699f16fbae24018c16f to your computer and use it in GitHub Desktop.
Save G10DRAS/ad82051b4ea8e699f16fbae24018c16f to your computer and use it in GitHub Desktop.
WiFi Monitor - Restart WiFi
#!/bin/bash
##################################################################
#
# 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_monitor.sh
# 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_monitor.sh
#
##################################################################
# Settings
# Where and what you want to call the Lockfile
lockfile='/tmp/wifi_monitor.pid'
# Which Interface do you want to check/fix
wlan='wlan0'
##################################################################
echo
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"
if ifconfig $wlan | grep -q "inet addr:" ; then
echo "Network is Okay"
else
echo "Trying Network connection Up! Attempting reconnection."
sudo ifup --force $wlan
sleep 15
echo `ifconfig $wlan | grep "inet addr"`
fi
sleep 5
echo
echo "Current Setting:"
echo `ifconfig $wlan | grep "inet addr:"`
echo
# Check is complete, Remove Lock file and exit
# echo "process is complete, removing lockfile"
rm $lockfile
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment