К сожалению, беспроводное соединение в моем доме часто пропадает, что требует перезагрузки беспроводного маршрутизатора.
Хуже всего то, что мой Ubuntu Media PC автоматически не подключается к беспроводной сети, когда он отсутствует, а затем появляется примерно через минуту. Рассматриваемая сеть настраивается как «автоматически подключаться» в настройках сети.
Если я вручную выберу беспроводную сеть, используя значок беспроводной сети в правом верхнем углу экрана, все будет работать нормально, пока в следующий раз беспроводное соединение не выйдет из строя.
Я ищу способ, поэтому мне не нужно постоянно делать это вручную.
У меня была похожая проблема с половинной картой Intel Wireless WiFi 5100 моего ноутбука и драйвером iwlagn драйвера. Эта проблема - известная проблема с драйвером iwlagn, и лучший обходной путь - отключить 802.11n на карте.
Чтобы отключить 802.11n на этой карте, создайте / отредактируйте файл /etc/modprobe.d/options.conf
:
sudo -H gedit /etc/modprobe.d/options.conf
и добавьте в него следующее.
options iwlagn 11n_disable=1 11n_disable50=1
Это альтернативное использование service network-manager restart
:
#!/usr/bin/env bash
# 1. copy this script into
# /usr/bin
# 2. change permissions
# root:/usr/bin# chmod +x checkwifi.sh
# 3. add to cron as root
# sudo su
# crontab -e
# add this to check your wifi every minute
# * * * * * /usr/bin/checkwifi.sh
is_ok=$(/sbin/ifconfig wlp2s0 | /bin/grep inet\ addr -c)
if [ "$is_ok" -eq 0 ] ; then
# restart
/usr/sbin/service network-manager restart
# wifi is ok
/bin/echo $(date) "wifi was restarted" >> /user/user/Dropbox/wifi.log
/bin/echo $(/sbin/ifconfig wlp2s0) >> /home/user/Dropbox/wifi.log
else
# wifi is ok
/bin/echo $(date) "wifi is ok" >> /home/user/Dropbox/wifi.log
/bin/echo $(/sbin/ifconfig wlp2s0) >> /home/user/Dropbox/wifi.log
fi
Это, кажется, опубликовано по всей сети без каких-либо хороших решений. Я думаю, что лучшее исправление / обходной путь - это заставить его проверять подключение к Интернету, а если его там нет, то заново подключиться. Я сделал это с помощью теста ping на google.com, а затем просто перезапустил сеть. Код не проверен (часть перезапуска и часть cron, если оператор проверен), поэтому я просто подожду, пока он не отключится. У меня Ubuntu Server 12.10, поэтому нет графического интерфейса, и каждый раз, когда беспроводная связь перегружается, неудобно подключать монитор и клавиатуру.
Часть Cron сделана через webmin, так что я много об этом. Сценарий выглядит следующим образом:
# edited by dim_voly for networking restart on no pingback every 5 mins
#!/bin/bash
# Name of File: networkingCron
# Purpose: to check if the internet is up (via ping test to google) and if not, restart networking service
# this script is invoked via cron, ideally every 5 mins.
#check if there is internet via ping test
if ! [ "`ping -c 1 google.com`" ]; then #if ping exits nonzero...
sudo service networking restart #restart the whole thing
echo Networking service restarted due to no ping response from google.com
fi
echo Script 'networkingCron' completed, if no message above then there was no network restart.
# dunno how to restart the wifi only since that is the only active connection that server uses.
# also I don't think those echos go anywhere
Убедитесь, что запущен от имени пользователя root, и убедитесь, что сценарий имеет права на выполнение (u + x).
ссылки:
Более современная версия скрипта @DougD
#!/bin/bash
wlan=$(/sbin/ifconfig wlan0 | grep inet\ addr -c)
if [ "$wlan" -eq 0 ]; then
/sbin/ifdown wlan0 && /sbin/ifup wlan0
else
echo interface is up
fi
Просто создайте новый файл vi /root/checkwanup
и добавьте это содержание:
#!/bin/bash
wlan=`/sbin/ifconfig wlan0 | grep inet\ addr | wc -l`
if [ $wlan -eq 0 ]; then
/sbin/ifdown wlan0 && /sbin/ifup wlan0
else
echo interface is up
fi
Затем chmod 555 /root/checkwanup
и добавьте его к своему crontab:
crontab -e
*/15 * * * * /bin/bash /root/checkwanup
Источник: http://sirlagz.net/2013/01/10/script-wifi-checker-script/
Возможно, вы захотите взглянуть на использование wpa_supplicant вместо network-manager, но это не имеет значения, когда вы находитесь в медиа-центре. wpa_supplicant не так гибок, как сетевой менеджер, но на самом деле он не сдается после трех попыток. взгляните на этот ответ .
Вот моя версия - она работает с NetworkManager:
#!/bin/bash
wlan=`/sbin/ifconfig wlan0 | grep inet\ addr | wc -l`
if [ $wlan -eq 0 ]; then
/usr/bin/nmcli nm wifi off && /usr/bin/nmcli nm wifi on
fi