У меня возникли проблемы с WIFI на Ubuntu. Я попытался обновить систему, но проблема осталась: я внезапно теряю соединение с маршрутизатором, и когда я нажимаю на панель WIFI, система не обнаруживает никаких точек доступа. Мне приходится снимать флажок «Включить WIFI», а затем снова проверять его, чтобы он заработал, и он автоматически переподключается.
Я думаю создать bash-скрипт, который определяет, когда ПК по какой-либо причине отключается от маршрутизатора, и при отключении отключает, а затем включает Wi-Fi. Я имею в виду, что можно автоматизировать сброс соединения?
Я думаю, я должен это использовать.
nmcli nm wifi off
nmcli nm wifi on
но как сделать так, чтобы скрипт знал, что ПК отключен от WIFI?
решение1
Это проще, чем вы думаете:
#!/bin/bash
if ! [ "$(ping -c 1 google.com)" ]; then
nmcli nm wifi off
nmcli nm wifi on
fi
Затем вы можете использовать задание cron, чтобы этот скрипт запускался каждую минуту.
решение2
Хотя ответ правильный, следует учитывать, что:
1) это будет работать независимо от того, вошел ли пользователь в систему или нет --- это может быть желаемым поведением или нет, в зависимости от приложения;
2) если повторное подключение задержится более чем на 1 минуту, вы никогда не доберетесь туда...
Я написал простой скрипт, который я могу запустить с помощью стартовых скриптов моего графического сеанса, и который может быть хорошим кандидатом. Я перенаправляю его вывод в файл, чтобы я мог следить за ним с помощью моей утилиты SLogger.
Вот сценарий — никогда не знаешь, что будет дальше.
#!/bin/bash
while /bin/true; do
if ! [ "$(ping -c 1 google.com)" ]; then
echo "Warning: connection lost at $(date) -- restart"
nmcli nm wifi off
sleep 5
nmcli nm wifi on
sleep 60
if ! [ "$(ping -c 1 google.com)" ]; then
echo "Waiting for connection going up at $(date)"
sleep 60
else
echo "Connection on at $(date)"
fi
# else
# echo "Connection OK on $(date)"
fi
sleep 60
done