Wifi-startstop: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
(No difference)
|
Latest revision as of 00:34, 29 September 2011
This script uses the 'expect' program to interact with my router to automatically start and stop the Wi-Fi.
To automatically initiate either a start or a stop I have the following crontab entries:
#start wireless at 18:30 during weekdays 30 18 * * 1-5 /root/bin/start-wifi.sh > /dev/null 2>&1 #turn off wireless at 23:00 every day 0 23 * * * /root/bin/stop-wifi.sh > /dev/null 2>&1
Wi-Fi Start
The start-wifi.sh script contains the following lines:
#!/bin/sh EXPECT=/usr/bin/expect EXP_SCRIPT=/root/bin/wifi-start.exp LOG=/dev/shm/expect.log if $EXPECT -f $EXP_SCRIPT then echo "`date` Wireless Network started by Expect script" >> $LOG else echo "`date` Wireless Network already active" >> $LOG fi
The wifi-start expect script looks like this:
set timeout 5 set PASS "secretpw" set ROUTER "http://192.168.0.1/xslt?PAGE=C04&THISPAGE=C01&NEXTPAGE=C04&DEVNAME=wave0" set OPTIONS "-anonymous" spawn /usr/bin/links $ROUTER $OPTIONS expect { "2701HGV-W" { set CONTINUE 1 } timeout { exit 1 } } #search for the password field send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" sleep 1 # enter password send "$PASS" # jump down to the submit button send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" #press enter send "\r" # acknowledge to post form data #press enter send "\r" expect { "You are about to enable the following " { set CONTINUE 1 } timeout { exit 1 } } sleep 1 # jump down to the confirm button send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" # press 'enter' send "\r" # acknowledge to post form data #press enter send "\r" expect "Refresh" # press enter to refresh the page send "\r" expect "View Network Summary" exit 0
Wi-Fi Stop
The stop-wifi.sh script contains the following lines:
#!/bin/sh EXPECT=/usr/bin/expect EXP_SCRIPT=/root/bin/wifi-stop.exp LOG=/dev/shm/expect.log if $EXPECT -f $EXP_SCRIPT then echo "`date` Wireless Network stopped by Expect script" >> $LOG else echo "`date` Wireless Network already disabled" >> $LOG fi
The wifi-stop expect script looks like this:
set timeout 5 set PASS "secretpw" set ROUTER "http://192.168.0.1/xslt?PAGE=C04&THISPAGE=C01&NEXTPAGE=C04&DEVNAME=wave0" set OPTIONS "-anonymous" spawn /usr/bin/links $ROUTER $OPTIONS expect { "2701HGV-W" { set CONTINUE 1 } timeout { exit 1 } } #search for the password field send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" sleep 1 # enter password send "$PASS" # jump down to the submit button send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" #press enter send "\r" # acknowledge to post form data #press enter send "\r" expect { "You are about to disable the following " { set CONTINUE 1 } timeout { exit 1 } } sleep 1 # jump down to the confirm button send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" send -- "\033\[B" # press 'enter' send "\r" # acknowledge to post form data #press enter send "\r" expect "Refresh" # press enter to refresh the page send "\r" expect "View Network Summary" exit 0