Скрипт, заменяющий Wachdog

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
DES
Сообщения: 91
Зарегистрирован: 08 авг 2013, 21:12

17 окт 2013, 22:18

А если у меня два прова интернета?
один через USB, другой через 1 порт.
ничего не меняется в идеологии и практике?


RB750UP with Firmware:3.19 && RouterOS:6.23
Аватара пользователя
BLOODER
Сообщения: 156
Зарегистрирован: 02 окт 2013, 18:38
Откуда: г.Краснодар
Контактная информация:

18 окт 2013, 02:03

DES писал(а):А если у меня два прова интернета?
один через USB, другой через 1 порт.
ничего не меняется в идеологии и практике?

абсолютно! просто если не забивать голову изменением и нет практики в этом то я бы создал два скрипта но каждый бы смотрел на свой порт и пускай по очереди пингуют и первого и второго :ni_zia:


Аватара пользователя
podarok66
Модератор
Сообщения: 4020
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

18 окт 2013, 15:18

BLOODER писал(а):абсолютно! просто если не забивать голову изменением и нет практики в этом то я бы создал два скрипта но каждый бы смотрел на свой порт и пускай по очереди пингуют и первого и второго

Нет, ну как же!!! В этом случае настраивается переключение каналов, зачем Вам перезагрузка? Ведь при двух скриптах Вы получите ребут при отказе любого одного из каналов. А перезагрузка нужна только если нет отклика на обоих интерфейсах. Тоже можно прописать. У меня провайдер один, поэтому я подобной штукой не заморачивался. Думаю, на изменение скрипта у человека хоть немного знакомого с этим делом уйдет минимальное время.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Аватара пользователя
BLOODER
Сообщения: 156
Зарегистрирован: 02 окт 2013, 18:38
Откуда: г.Краснодар
Контактная информация:

18 окт 2013, 15:58

согласен коллега что то тупанул :-)


Аватара пользователя
BLOODER
Сообщения: 156
Зарегистрирован: 02 окт 2013, 18:38
Откуда: г.Краснодар
Контактная информация:

18 окт 2013, 16:11

однако ! :du_ma_et: если указать в нём бридж на которой поступает интернет (если их конечно не куча и не всё сильно заморочено) то можно отделаться одним скриптом. Что скажите, господа умники :-) ???


Аватара пользователя
podarok66
Модератор
Сообщения: 4020
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

18 окт 2013, 16:50

Тааак. Давайте-ка с этого момента поподробнее. Кусок измененного кода с комментариями, что и как работает. Хотелось бы увидеть и понять Вашу мысль. Может я ее потом у себя пользовать буду во всю :-)


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Аватара пользователя
BLOODER
Сообщения: 156
Зарегистрирован: 02 окт 2013, 18:38
Откуда: г.Краснодар
Контактная информация:

18 окт 2013, 17:26

ну вот смотри тут мы указали на интерфейс yota
:local PingCount 3
:local google 8.8.8.8
:local yandex 77.88.8.8
:local mail 94.100.180.201
:local ResultGoogle [/ping count=$PingCount $Google interface=yota]
:local Resultyandex [/ping count=$PingCount $yandex interface=yota]
:local ResultMail [/ping count=$PingCount $mail interface=yota]
:local MainIfInetOk false;
:set MainIfInetOk (($ResultGoogle + $Resultyandex + $ResultMail) >= (2 * $PingCount))
:put "MainIfInetOk=$MainIfInetOk"
if (!$MainIfInetOk) do={
/log error "Bad connect"
#/system reboot
}
if ($MainIfInetOk) do={
/log info "Connect OK"
}
по сути на бридже то у нас тоже имеется доступ в интернет и пинг с удовольствием будет проходить на ура, так вот я и предлагаю направить его на бридж вот как то так
:local PingCount 3
:local google 8.8.8.8
:local yandex 77.88.8.8
:local mail 94.100.180.201
:local ResultGoogle [/ping count=$PingCount $Google interface=bridg]
:local Resultyandex [/ping count=$PingCount $yandex interface=bridg]
:local ResultMail [/ping count=$PingCount $mail interface=bridg]
:local MainIfInetOk false;
:set MainIfInetOk (($ResultGoogle + $Resultyandex + $ResultMail) >= (2 * $PingCount))
:put "MainIfInetOk=$MainIfInetOk"
if (!$MainIfInetOk) do={
/log error "Bad connect"
#/system reboot
}
if ($MainIfInetOk) do={
/log info "Connect OK"
}


Аватара пользователя
podarok66
Модератор
Сообщения: 4020
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

18 окт 2013, 17:38

Не-не-не. /ping count=$PingCount $Google interface=bridge не прокатит. При Вашем варианте Вы пинг направляете в локальную сеть и получите отсутствие ответов и как результат ребут при работающет интернете. Можете проверить в терминале

Код: Выделить всё

/ping count=3 8.8.4.4 interface=bridge1


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Аватара пользователя
podarok66
Модератор
Сообщения: 4020
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

18 окт 2013, 17:44

Приблизительно вся эта шалапуть должна измениться во в эту сторону при условии работы обоих каналов одновременно:

Код: Выделить всё

:local PingCount 3
:local google 8.8.8.8
:local yandex 77.88.8.8
:local mail 94.100.180.201
:local ResultGoogle1 [/ping count=$PingCount $Google interface=WAN1]
:local Resultyandex1 [/ping count=$PingCount $yandex interface=WAN1]
:local ResultMail1 [/ping count=$PingCount $mail interface=WAN1]
:local MainIfInetOk1 false;
:set MainIfInetOk1 (($ResultGoogle1 + $Resultyandex1 + $ResultMail1) >= (2 * $PingCount))
:put "MainIfInetOk1=$MainIfInetOk1"
:local ResultGoogle2 [/ping count=$PingCount $Google interface=WAN2]
:local Resultyandex2 [/ping count=$PingCount $yandex interface=WAN2]
:local ResultMail2 [/ping count=$PingCount $mail interface=WAN2]
:local MainIfInetOk2 false;
:set MainIfInetOk2 (($ResultGoogle2 + $Resultyandex2 + $ResultMail2) >= (2 * $PingCount))
:put "MainIfInetOk2=$MainIfInetOk2"
if (!$MainIfInetOk1 && !$MainIfInetOk2) do={
/log error "Bad connect"
#/system reboot
} else={
/log info "Connect OK"
}

За точность не ручаюсь, потому как на коленке писал, если посидеть, можно покрасивее написать. Ну и не проверял, конечно, негде мне... :-)

Если у Вас работает резервирование канала, то есть канала переключаются при падении, то можно оставлять старый вариант, только удалить interface=WAN везде, пинг должен проходить и без этого.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Аватара пользователя
BLOODER
Сообщения: 156
Зарегистрирован: 02 окт 2013, 18:38
Откуда: г.Краснодар
Контактная информация:

18 окт 2013, 18:11

Опять на коленке :-) ну что это такое ;;-)))


Ответить