Я строю беспроводную фоторамку. Единственное, что мне не удалось выяснить, - это как восстановить соединение с Wi-Fi с помощью рекомендованного метода.
Сейчас я редактировал / 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, если он терпит неудачу, и cron it на каждый час или два.
Я нашел следующий скрипт в http://sirlagz.net/2013/01/10/script-wifi-checker-script/
Просто создайте новый файл 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