На этот вопрос уже есть ответ здесь:
Я создаю беспроводную фоторамку. Единственное, что я не смог выяснить, это как восстановить беспроводное соединение, используя рекомендуемый метод.
Сейчас я отредактировал /etc/network/interfaces так, чтобы wlan0 запускался при загрузке:
auto wlan0
iface wlan0 inet dhcp
wireless-essid ourssid
Этот метод отлично работает при загрузке. Но я обнаружил, что если я не проверяю соединение в течение длительного времени (может быть неделя), оно может быть отключено. Поэтому я должен переподключиться.
Сейчас для проверки работоспособности соединения я загружаю с сервера файл, который не может быть кэширован (http://server.ext/ping.php?randomize=123456). Если мне не удается получить файл, я предполагаю, что соединение больше не работает, и я запускаю сценарий оболочки, например
#!/bin/bash
ifconfig wlan0 up
iwconfig wlan0 essid "ourssid"
dhclient wlan0
И соединение возвращается. Но я не могу найти ничего о том, что это хороший метод.
Можно ли это улучшить, или это уже правильно?
ifup wlan0
должен сделать все это автоматически.
Он читает файл interfaces
и выполняет все, что делает запуск. Возможно, вам придется сначала запустить ifdown wlan0
, если ifup
считает, что интерфейс уже работает.
Вы можете сделать небольшой скрипт, чтобы попытаться получить файл, а затем запустить ifup
, если он не работает, и создать его для каждого часа или двух.
Я нашел следующий скрипт на http://sirlagz.net/2013/01/10/script-wifi-checker-script/
Just создайте новый файл 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 -e
*/15 * * * * /bin/bash /root/checkwanup