I started running this on a netbook with aggressive power management:
#!/bin/ksh
#
# This is /etc/cron.hourly/wireless-up
#
# But I also run it from the root crontab every minute:
#
# * * * * * /etc/cron.hourly/wireless-up
#
# This script works on the Asus EeePC 1005,
# which is a very bad actor when using it's
# internal wifi, which it powers-down to a
# standby mode that is really inadequate.
#
# Phil Ehrens <phil@slug.org>
#
ESSID='slugdotorg'
NIC='wlan0'
AP_MAC='DE:EA:DB:EE:F0:12'
GW='192.168.1.1'
if [[ ! $(/sbin/iwconfig "$NIC" ) =~ "$AP_MAC" ]]
then
/sbin/iwconfig "$NIC" essid "$ESSID"
/usr/bin/logger -t wireless-up "restored essid setting for $NIC"
/sbin/ifconfig "$NIC" down
sleep 2
/sbin/ifconfig "$NIC" up
sleep 2
/usr/bin/logger -t wireless-up "ran ifconfig $NIC down/up"
fi
if [[ $(/usr/sbin/rfkill list) =~ yes ]]
then
/usr/sbin/rfkill unblock all
/usr/bin/logger -t wireless-up 'ran rfkill unblock all'
fi
if [[ ! $(/sbin/route) =~ default ]]
then
/sbin/route add default gw "$GW"
/usr/bin/logger -t wireless-up 'restored default gateway'
fi