Rating@Mail.ru
IPB
Etersoft - from Windows to Linux
Etersoft
решения для перехода
с Windows на Linux
Дружественные сайты: alv.me и Rus-Linux.net

Здравствуйте, гость ( Вход | Регистрация ) Поиск · 

> 

Темы от студентов с запросами готовых решений по заданиям закрываются не глядя.

 
Reply to this topic Start new topic
> Тестируем интернет, linux android
froa
bookmark
gyfbbdvkffmrljmmmwd
Mar 15 2017, в 15:51
Сообщение #1


Новичок
Иконка группы

Сообщений: 11

Вставить имя   :   Цитата

Группа: Участники

Автор темы
Привет,сталкиваюсь с проблемой ,отсутствует "интернет" при включенном интерфейсе мобильного интернета на смартфоне.
Единственное что спасает в такой ситуации - это перезагрузка смартфона . Перезагрузка интерфейса ничего не дает .
Хочется автоматизировать всю эту рутинную проверку. То есть при отсутствие интернета он должен перезагружаться .

Поставил себе задачу :

1.Перезагрузка смартфона и запуск скрипта
2.Отслеживание соединения интернета

Первую задачу можно решить с помощью init.d - автозагрузка скриптов после запуска системы или с помощью taskera - выставить событие после запуска системы - запуск скрипта (run shell)
Собственно извиняюсь за такое длинное предисловие но на втором пункте я застрял. Нужно решить это с помощью shell скрипта . Так как нужно встроить его в другой скрипт.
Пробовал с помощью команды ping .Пинговать то получаться но как составить условие для перезагрузки ?


Go to the top of the page
 
+Quote Post
Vascom
bookmark
gyfbbdvkffmrljmmmwd
Mar 15 2017, в 15:57
Сообщение #2


Знаток линукса
Иконка группы

Сообщений: 753

Вставить имя   :   Цитата

ОС: Fedora 26
Город: Moscow

Группа: Участники

Примерно так:
Код
ping -c 4 -q 8.8.8.8 &>/dev/null || <команда на перезагрузку>

То есть пингуем четыре раза DNS от гугла, если пинг не проходит, то выполняем перезагрузку.
Это можно проверять в цикле с периодичностью, задаваемой командой sleep, либо по крону (если он есть).


--------------------
Помощь по Fedora и RFRemix.


Спасибо сказали:
Go to the top of the page
 
+Quote Post
froa
bookmark
gyfbbdvkffmrljmmmwd
Mar 15 2017, в 18:48
Сообщение #3


Новичок
Иконка группы

Сообщений: 11

Вставить имя   :   Цитата

Группа: Участники

Автор темы
Цитата(Vascom @ Mar 15 2017, в 15:57) *
Примерно так:
Код
ping -c 4 -q 8.8.8.8 &>/dev/null || <команда на перезагрузку>

То есть пингуем четыре раза DNS от гугла, если пинг не проходит, то выполняем перезагрузку.
Это можно проверять в цикле с периодичностью, задаваемой командой sleep, либо по крону (если он есть).


Все отлично работает . Но вот у меня код в одну строчку не влезает(пишу на телефоне в skriptrunnet ) и команда перезагрузки выходит на новую строку и получается перезагрузка выполняется всегда .
Можно в код поправку внести, что бы читал как одну строку или все таки только остается записать в отдельный файл (скрипт) и вызывать его

Go to the top of the page
 
+Quote Post
NickLion
bookmark
gyfbbdvkffmrljmmmwd
Mar 15 2017, в 19:00
Сообщение #4


аватар-невидимка
Иконка группы

Сообщений: 3097

Вставить имя   :   Цитата

ОС: openSUSE Tumbleweed x86_64
Город: Львів

Группа: Участники

Код
if ping ...
then
    echo ok
else
    echo no internet
fi
Go to the top of the page
 
+Quote Post
Vascom
bookmark
gyfbbdvkffmrljmmmwd
Mar 15 2017, в 19:23
Сообщение #5


Знаток линукса
Иконка группы

Сообщений: 753

Вставить имя   :   Цитата

ОС: Fedora 26
Город: Moscow

Группа: Участники

Можно обратным слэшем экранировать перевод строки.
Код
ping -c 4 -q 8.8.8.8 &>/dev/null || \
<команда на перезагрузку>


--------------------
Помощь по Fedora и RFRemix.


Спасибо сказали:
Go to the top of the page
 
+Quote Post
froa
bookmark
gyfbbdvkffmrljmmmwd
Mar 17 2017, в 13:00
Сообщение #6


Новичок
Иконка группы

Сообщений: 11

Вставить имя   :   Цитата

Группа: Участники

Автор темы
Написал скрипт простенький под android.Он проверяет значения mDataActivity . этот скрипт запускается как только запускаться Chrome

Код
#!/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. В чем моя ошибка ?
Go to the top of the page
 
+Quote Post
Bizdelnick
bookmark
gyfbbdvkffmrljmmmwd
Mar 17 2017, в 13:16
Сообщение #7


grammatikführer
Иконка группы

Сообщений: 12638

Вставить имя   :   Цитата

ОС: Debian GNU/Linux
Город: Санкт-Петербург

Группа: Модераторы разделов

На первый взгляд ошибки нет. Возможно строки всё-таки различаются? Например в конце $a прицеплен возврат каретки.


--------------------
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
пожалуйста
приемлемо
проблема
пробовать
трафик
Go to the top of the page
 
+Quote Post
froa
bookmark
gyfbbdvkffmrljmmmwd
Mar 17 2017, в 15:32
Сообщение #8


Новичок
Иконка группы

Сообщений: 11

Вставить имя   :   Цитата

Группа: Участники

Автор темы
Цитата(Bizdelnick @ Mar 17 2017, в 13:16) *
На первый взгляд ошибки нет. Возможно строки всё-таки различаются? Например в конце $a прицеплен возврат каретки.


Мой выбор был изначально не правильный ибо я сравнивал динамически получаемые строки. Для этого лучше подошел grep
Код
if dumpsys telephony.registry | grep -q "mDataActivity=3"; then
  echo "true"
else
  echo "false"
fi
Go to the top of the page
 
+Quote Post

 Reply to this topic Start new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 24th August 2017 - в 11:47




Rating@Mail.ru