У меня проблемы с WIFI в Ubuntu. Я попытался обновить систему, но все равно происходит то, что я внезапно теряю соединение с маршрутизатором, и когда я нажимаю на панели WIFI, система не обнаруживает AP. мне нужно снять флажок «включить WIFI», а затем снова проверить его, чтобы он работал, он автоматически переподключается.
Я подумываю о создании сценария bash, который определяет, когда компьютер отключен от маршрутизатора по какой-либо причине, а когда он отключен, отключите его, а затем включите Wi-Fi. я имею в виду как автоматическую перезагрузку соединения, которое возможно?
я думаю, что я должен использовать это
nmcli nm wifi off
nmcli nm wifi on
, но как я могу заставить скрипт знать, если ПК отключен от WIFI?
Это проще, чем вы думаете:
#!/bin/bash
if ! [ "$(ping -c 1 google.com)" ]; then
nmcli nm wifi off
nmcli nm wifi on
fi
Тогда вы можете использовать задание cron для запуска этого скрипта каждую минуту.
Хотя ответ правильный, вы должны принять во внимание, что:
1) он будет работать, если пользователь вошел в систему или нет - это может быть желаемое поведение или нет, в зависимости от application;
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