Перебор соединений

Обсуждение программ nnCron и nnCron LITE

Перебор соединений

Postby zed29 » Mon, 30 Jan 2012, 09:16

Здравствуйте.
По форуму полазил, доки перечитываю, но решения своей задачи в упор не вижу. Может кто сталкивался и сможет подсказать.
Есть два модема GPRS и 3G. Соединения у них имеют разные названия, ну и номера дозвона тоже. Порой жестко глючит GPRS, пинг падает и когда он становится совсем плох или нулевой, начинаем подключать 3G. И наоборот. 3G не идеален и может начисто отвалиться. Тогда подключаемся на GPRS. Основная задача чтобы связь была всегда. Вот как это можно реализовать средствами nnCron?
Спасибо за внимание.
User avatar
zed29
 
Posts: 55
Joined: Sat, 28 Mar 2009, 17:44
Location: Украина / Киев

Postby Decomo » Mon, 30 Jan 2012, 10:44

Пусть работают два соединения одновременно.
GPRS заглючил - командой route с соответствующими параметрами делаем главным соединение 3G. Переподключаем GPRS.
3G заглючил - командой route с соответствующими параметрами делаем главным соединение GPRS. Переподключаем 3G.
<?xml version="1.0" encoding="UTF-8"?>
User avatar
Decomo
 
Posts: 86
Joined: Tue, 13 Jan 2009, 02:52
Location: Republic Of Belarus

Re: Перебор соединений

Postby zed29 » Mon, 30 Jan 2012, 19:50

Дык мне нужна автоматизация. Откуда я буду знать что одно из соединений заглючило, меня там и рядом не должно быть. Компьютер сам все должен делать. Пинга нет, переключился на второе соединение, пинга нет, обратно на первое пинг пошел - все круто. Пинг пропал - цикл.
User avatar
zed29
 
Posts: 55
Joined: Sat, 28 Mar 2009, 17:44
Location: Украина / Киев

Re: Перебор соединений

Postby Decomo » Mon, 30 Jan 2012, 20:50

zed29 wrote:Дык мне нужна автоматизация.

А мы и говорим об автоматизации.)) nnCron для этого и предназначен.

zed29 wrote:Пинга нет, переключился на второе соединение, пинга нет, обратно на первое пинг пошел - все круто. Пинг пропал - цикл.

Вот такую задачу и программируй..:)
<?xml version="1.0" encoding="UTF-8"?>
User avatar
Decomo
 
Posts: 86
Joined: Tue, 13 Jan 2009, 02:52
Location: Republic Of Belarus

Re: Перебор соединений

Postby zed29 » Tue, 31 Jan 2012, 08:59

Очень благодарен за исчерпывающий ответ. Если б знал как это все реализовать, за помощью не обращался бы.
User avatar
zed29
 
Posts: 55
Joined: Sat, 28 Mar 2009, 17:44
Location: Украина / Киев

Re: Перебор соединений

Postby Morituruz » Tue, 31 Jan 2012, 09:28

Decomo wrote:Пусть работают два соединения одновременно.

а они точно будут вместе работать?
Может таки проще переподключать соединения.

zed29 wrote:Пинга нет, переключился на второе соединение, пинга нет, обратно на первое пинг пошел - все круто.

Для проверки пинга есть такое слово:
http://nncron.ru/help/RU/commands/ras.htm#HOST
Для проверки, включено ли соединение:
http://nncron.ru/help/RU/commands/ras.htm#ONLINE1
Для подключения соединения:
http://nncron.ru/help/RU/commands/ras.htm#DIAL

Условный оператор в форте выглядит так:
http://nncron.ru/help/RU/working/nncron_forth.htm#IF
User avatar
Morituruz
 
Posts: 727
Joined: Sun, 14 Oct 2007, 01:51

Re: Перебор соединений

Postby zed29 » Tue, 31 Jan 2012, 10:56

Спасибо. Условные операторы, вот моя проблема. Буду пробовать.
User avatar
zed29
 
Posts: 55
Joined: Sat, 28 Mar 2009, 17:44
Location: Украина / Киев

Re: Перебор соединений

Postby zed29 » Tue, 31 Jan 2012, 11:38

Вот вышло что то такое. Я не силен в программировании. Поэтому прошу проверить код на ошибки.

Code: Select all
#( 2ModeM
Action:
    ONLINE: "internet3G" 0= \ если соединение 3G не в онлайн
    IF
      HANGUP: "internet3G" \ рвем на всяк связь
      START-APPW: rmodem.cmd \ ресетим USB модем
        DIAL: "internet3G" 5 3 \ подключаем 3G
    THEN
      ONLINE: "internet3G" \ он на связи?
   IF
      START-APPW: ok.cmd \ ну типа все ок
   ELSE               
      DIAL: "internet" 5 3   \ иначе подключаем GPRS
   IF
      ONLINE: "internet" 0= \ если соединение GPRS не в онлайн
      START-APPW: reboot_comp.cmd \ Перезагружаем компьютер   
   THEN   
)#
User avatar
zed29
 
Posts: 55
Joined: Sat, 28 Mar 2009, 17:44
Location: Украина / Киев

Re: Перебор соединений

Postby Morituruz » Tue, 31 Jan 2012, 12:04

В принципе написано верно, но над логикой надо хорошо подумать.
В условии задачи не указано ни времени ни условий, т.е. она будет запускаться каждую минуту.
К тому же не хватает опции SingleInstance, а то может случиться, что задача будет одновременно работать два раза.
Далее она проверяет включено ли internet3G. Но по логике оно может быть ведь и отключено, т.к. в данный момент работает соединение internet.
К тому же, хорошо ли работает интернет, как я понимаю из первого поста, следует проверять по тому, какой пинг от интернет ресурсов, а вы просто проверяете, включено ли соединение.

Вобщем в вашем случае главная сложность — определить логику работы и условие запуска задачи, а уже потом нужно подобрать правильные слова из справки.
К примеру, ежеминутно (можно и чаще, но тогда нужен бесконечный цикл) проверять доступность важных для вас ресурсов. Не откликаются? Какое сейчас соединение работает? Разорвать его, подсоединить другое.

Кстати, вполне возможно, что то, что вы запускаете через rmodem.cmd можно запускать непосредственно из START-APPW, к тому же можно запускать скрыто с опцией SWHide (без чёрного окошка).
В nncron есть слово и для перезагрузки компьютера, если она действительно нужна в вашем случае:
http://nncron.ru/help/RU/commands/power ... htm#REBOOT
User avatar
Morituruz
 
Posts: 727
Joined: Sun, 14 Oct 2007, 01:51

Re: Перебор соединений

Postby zed29 » Tue, 31 Jan 2012, 15:36

Да, все замечания абсолютно верны.
SingleInstance - добавил.
Время запуска конечно же ежеминутно слишком часто, думаю каждые 15 минут сойдет.
Да, запуск батников по сути можно вписать в текст задачи, это я их к примеру добавил.
Функция перезагрузки крона всем хороша, единственное мне нужен таймер, чтоб в случае чего мог отменить перезапуск. В обычном батнике командой shiutdown -a отмена происходит, я эту команду под горячие клавишу в кроне подвязал, так что отмена происходит очень быстро.

Кстати, а можем ли мы при помощи nnCron запретить определенный программе / процессу, перезапускать компьютер?
User avatar
zed29
 
Posts: 55
Joined: Sat, 28 Mar 2009, 17:44
Location: Украина / Киев

Re: Перебор соединений

Postby Morituruz » Tue, 31 Jan 2012, 16:04

zed29 wrote:мне нужен таймер, чтоб в случае чего мог отменить перезапуск.

Видимо нужно вот это:
http://nncron.ru/help/RU/commands/power ... PTSHUTDOWN

zed29 wrote:Кстати, а можем ли мы при помощи nnCron запретить определенный программе / процессу, перезапускать компьютер?

Очень странное желание, но это скорее задача для антивируса.
User avatar
Morituruz
 
Posts: 727
Joined: Sun, 14 Oct 2007, 01:51

Re: Перебор соединений

Postby zed29 » Tue, 31 Jan 2012, 16:10

Да нет, не странное. Есть программа которая при отсутствии пинга к своему сервисному серверу, считает что интернета нет и каждые 10 минут перезагружает комп, даже если в общем связь есть. В итоге из за этих самых постоянных и бестолковых перезапусков, часть компьютеров просто зависает, и к ним нужно ехать, чтобы вручную перезагрузить. :Hangman:
User avatar
zed29
 
Posts: 55
Joined: Sat, 28 Mar 2009, 17:44
Location: Украина / Киев

Re: Перебор соединений

Postby Morituruz » Tue, 31 Jan 2012, 16:24

Если программа так... недальновидно спроектирована, что не имеет настройки для отмены перезагрузки, то может грохать её саму на упреждение? :D
Если она перед перезагрузкой выдаёт окно или ещё какое-то действие совершает, которое можно отловить с помощью какого-либо Watch* слова, то можно её закрывать и снова запускать.
Или можно узнать адреса её серверов, и самим пинговать их, и при падении пинга перезапускать программу.
Для тренировки можно попробовать сначала писать в лог время пропадения пинга до серверов и перезагрузку компьютера.
User avatar
Morituruz
 
Posts: 727
Joined: Sun, 14 Oct 2007, 01:51

Re: Перебор соединений

Postby VoidVolker » Tue, 31 Jan 2012, 18:47

95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: Bing [Bot] and 2 guests