![]() |
![]() |
#1 |
Member
|
![]()
на всякий случай. Для тех, кто делает соединение 3G
Решение проблемы зависания соединения Обычно предлагают проверять пингом какого-нибудь сервера Создаем файл Код:
touch /bin/tester.sh chmod 755 /bin/tester.sh Код:
#!/bin/sh if ! ping -q -c 2 -W 6 beeline.ru > /dev/null; then ifdown wan sleep 10 reboot & else echo "PING OK" fi Код:
/etc/init.d/cron stop echo "*/5 * * * * /bin/tester.sh" >> /etc/crontabs/root /etc/init.d/cron enable /etc/init.d/cron start Это решает проблему с зависанием 3G подключения. Скрипт пингует адрес "beeline.ru", если отклика нет, то сперва разъединяет подключение "3g" на случай, если оно зависло, далее ждёт 10 секунд, и соединяет "3g" подключение. --- Но это решение было не слишком надежно. Как оказалось, модем при таком подключении не всегда заново подключался. Помогал только ребут. Да и проверять по пингу не совсем надежно. Вдруг сервер просто завис, например. Проще проверять по наличию в ifconfig - 3G интерфейса. Когда связь отваливается - он пропадает тоже. Код:
#!/bin/sh TEST_WAN="`ifconfig | grep 3g | cut -b 1`" if [ "$TEST_WAN" = 3 ]; then # echo "3G-WAN OK" logger "3G router OK" else reboot && exit fi Последний раз редактировалось goldskif; 13.02.2013 в 16:59. |
![]() |
![]() |
![]() |
#2 |
Junior Member
Регистрация: 13.02.2013
Сообщений: 29
Вес репутации: 0 ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Еще можно перед перезагрузкой выгрузить и опять загрузить модуль OHCI / UHCI / EHCI. Перед выгрузкой модуля еще надо прибивать pppd, а то не даст выгрузить. В 90% случаев помогает.
|
![]() |
![]() |
![]() |
#3 | ||
Junior Member
Регистрация: 10.02.2013
Сообщений: 8
Вес репутации: 0 ![]() |
![]() Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
#4 |
Junior Member
Регистрация: 24.02.2013
Сообщений: 3
Вес репутации: 0 ![]() |
![]()
при перевтыкании модема ручками он сам цепляется к сети, но при перевтыкании юсб ресетом не подцепляется
|
![]() |
![]() |
![]() |
#5 |
Junior Member
Регистрация: 10.02.2013
Сообщений: 8
Вес репутации: 0 ![]() |
![]() |
![]() |
![]() |
![]() |
#6 |
Junior Member
Регистрация: 24.02.2013
Сообщений: 3
Вес репутации: 0 ![]() |
![]()
Linux OpenWrt 3.3.8 #1 Fri Sep 21 02:58:52 EDT 2012 mips GNU/Linux
|
![]() |
![]() |
![]() |
#7 |
Junior Member
Регистрация: 10.02.2013
Сообщений: 8
Вес репутации: 0 ![]() |
![]()
Должен работать. Логи системные и ядра прикрепи на момент зависания модема и после запуска usbreset
|
![]() |
![]() |
![]() |
#8 |
Junior Member
Регистрация: 24.02.2013
Сообщений: 3
Вес репутации: 0 ![]() |
![]()
проблема в хабе была
Последний раз редактировалось zzzjyk; 28.02.2013 в 18:00. |
![]() |
![]() |
![]() |
#9 |
Senior Member
Регистрация: 30.05.2011
Возраст: 50
Сообщений: 291
Вес репутации: 0 ![]() |
![]()
Как правильней будет послать из openwrt команду (reboot) в роутер (192.168.1.1) для его перезагрузки?
У меня сейчас инет по DSL. На Windows в автозагрузке сейчас работает программа со следующим кодом: Код:
; Компилятор - PureBasic 4.51. ProgramFilename.s=ProgramFilename() ; Имя и путь к исполняемому файлу данной программы ProgName.s=GetFilePart(ProgramFilename) a = CreateSemaphore_(#Null,0,1,@ProgName) ; Если прога уже запущена, то завершаем работу этой копии программы. If a<>0 And GetLastError_()=#ERROR_ALREADY_EXISTS MessageRequester(ProgName, "Программа уже запущена", #MB_OK|#MB_ICONWARNING) CloseHandle_(a) End EndIf InitNetwork() Procedure.s SendModemData(Connect, Command.s) Protected Result.s="", Count=0, x Command=Command+Chr(13)+Chr(10) SendNetworkData(Connect, @Command, Len(Command)) Repeat Delay(20) If NetworkClientEvent(Connect)=#PB_NetworkEvent_Data *mem=AllocateMemory(10000) If *mem ReceiveNetworkData(Connect,*mem,10000) In.s=PeekS(*mem) FreeMemory(*mem) Result=Result+In EndIf EndIf Count+1 Until Count>=80 ProcedureReturn Result EndProcedure Procedure RestartModem() Connect=OpenNetworkConnection("192.168.127.1", 23) If Connect Delay(100) SendModemData(Connect, "admin") ; Логин модема. Delay(1000) SendModemData(Connect, "admin") ; Пароль модема. Delay(1000) SendModemData(Connect, "reboot") ; Команда перезагрузки модема. Delay(4000) CloseNetworkConnection(Connect) EndIf EndProcedure Repeat Delay(30000) ; 30 секунд ожидания. x1=0 : x2=0 Connect=OpenNetworkConnection("www.google.com", 80) If Connect x1=1 CloseNetworkConnection(Connect) EndIf Delay(1000) Connect=OpenNetworkConnection("www.ya.ru", 80) If Connect x2=1 CloseNetworkConnection(Connect) EndIf If x1=0 And x2=0 RestartModem() For i=1 To 20 Delay(10000) ; 200 секунд ожидания. Необходимо чтобы модем успел перезагрузиться. Next i EndIf ForEver Последний раз редактировалось St@rz; 22.05.2013 в 12:36. |
![]() |
![]() |
![]() |
#10 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Можно SH скрипт написать
|
![]() |
![]() |
![]() |
Здесь присутствуют: 2 (пользователей: 0 , гостей: 2) | |
|
|