Привет,сталкиваюсь с проблемой ,отсутствует "интернет" при включенном интерфейсе мобильного интернета на смартфоне.
Единственное что спасает в такой ситуации - это перезагрузка смартфона . Перезагрузка интерфейса ничего не дает .
Хочется автоматизировать всю эту рутинную проверку. То есть при отсутствие интернета он должен перезагружаться .
Поставил себе задачу :
1.Перезагрузка смартфона и запуск скрипта
2.Отслеживание соединения интернета
Первую задачу можно решить с помощью init.d - автозагрузка скриптов после запуска системы или с помощью taskera - выставить событие после запуска системы - запуск скрипта (run shell)
Собственно извиняюсь за такое длинное предисловие но на втором пункте я застрял. Нужно решить это с помощью shell скрипта . Так как нужно встроить его в другой скрипт.
Пробовал с помощью команды ping .Пинговать то получаться но как составить условие для перезагрузки ?
Тестируем интернет (linux android)
Модераторы: /dev/random, Модераторы разделов
Re: Тестируем интернет
Примерно так:
То есть пингуем четыре раза DNS от гугла, если пинг не проходит, то выполняем перезагрузку.
Это можно проверять в цикле с периодичностью, задаваемой командой sleep, либо по крону (если он есть).
Код: Выделить всё
ping -c 4 -q 8.8.8.8 &>/dev/null || <команда на перезагрузку>
То есть пингуем четыре раза DNS от гугла, если пинг не проходит, то выполняем перезагрузку.
Это можно проверять в цикле с периодичностью, задаваемой командой sleep, либо по крону (если он есть).
Спасибо сказали:
Re: Тестируем интернет
Vascom писал(а): ↑15.03.2017 15:57Примерно так:
Код: Выделить всё
ping -c 4 -q 8.8.8.8 &>/dev/null || <команда на перезагрузку>
То есть пингуем четыре раза DNS от гугла, если пинг не проходит, то выполняем перезагрузку.
Это можно проверять в цикле с периодичностью, задаваемой командой sleep, либо по крону (если он есть).
Все отлично работает . Но вот у меня код в одну строчку не влезает(пишу на телефоне в skriptrunnet ) и команда перезагрузки выходит на новую строку и получается перезагрузка выполняется всегда .
Можно в код поправку внести, что бы читал как одну строку или все таки только остается записать в отдельный файл (скрипт) и вызывать его
Re: Тестируем интернет
Код: Выделить всё
if ping ...
then
echo ok
else
echo no internet
fi
Re: Тестируем интернет
Можно обратным слэшем экранировать перевод строки.
Код: Выделить всё
ping -c 4 -q 8.8.8.8 &>/dev/null || \
<команда на перезагрузку>
Re: Тестируем интернет
Написал скрипт простенький под android.Он проверяет значения mDataActivity . этот скрипт запускается как только запускаться Chrome
У меня выходит false , даже когда $a = $b. В чем моя ошибка ?
Код: Выделить всё
#!/system/bin/sh
su
b=mDataActivity=3
a=$(dumpsys telephony.registry | grep mDataActivity| head -1)
if [ "$b" = "$a" ]
then
echo " true "
else
echo "false"
echo $a # смотрим какое значение в переменной для проверки
fi
У меня выходит false , даже когда $a = $b. В чем моя ошибка ?
- Bizdelnick
- Модератор
- Сообщения: 20796
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Тестируем интернет
На первый взгляд ошибки нет. Возможно строки всё-таки различаются? Например в конце $a прицеплен возврат каретки.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Тестируем интернет
Bizdelnick писал(а): ↑17.03.2017 13:16На первый взгляд ошибки нет. Возможно строки всё-таки различаются? Например в конце $a прицеплен возврат каретки.
Мой выбор был изначально не правильный ибо я сравнивал динамически получаемые строки. Для этого лучше подошел grep
Код: Выделить всё
if dumpsys telephony.registry | grep -q "mDataActivity=3"; then
echo "true"
else
echo "false"
fi