скрипт

Автоматизация при помощи встроенного скриптового языка и RouterOS API
evgeniy7676
Сообщения: 53
Зарегистрирован: 19 май 2016, 14:52

скрипт

Сообщение evgeniy7676 » 14 сен 2017, 19:43

:global testPrim
:global testRez
:global testPrimOld
:global testRezOld


:global yandexprim [ping [resolve ukr.net] count=3 routing-table=ISP1_rout interface=ISP1]
:global googleprim [ping [resolve google.com.ua] count=3 routing-table=ISP1_rout interface=ISP1]

:global yandexrez [ping [resolve ukr.net] count=3 routing-table=ISP2_rout interface=ISP2]
:global googlerez [ping [resolve google.com.ua] count=3 routing-table=ISP2_rout interface=ISP2]

if (($googleprim + $yandexprim) != 0) do={:set testPrim true} else={:set testPrim false}
if (($googlerez + $yandexrez ) != 0) do={:set testRez true} else={:set testRez false}

if (($testPrim = false) && ($testPrim != $testPrimOld)) do={


Помогите переделать скрипт чтобы проверять хосты несколько раз и после выполнять услувие

Аватара пользователя
Chupaka
Сообщения: 1797
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

Re: скрипт

Сообщение Chupaka » 15 сен 2017, 08:35

Что значит "несколько раз"? Текущие три раза - это не несколько? А сколько - несколько?

З.Ы. Нет смысла эти переменные делать глобальными, наверное.

evgeniy7676
Сообщения: 53
Зарегистрирован: 19 май 2016, 14:52

Re: скрипт

Сообщение evgeniy7676 » 15 сен 2017, 10:45

в смысле много ложных срабатываний,может сделать чтобы выполнил 4 строки скрипт после через 10 сек еще раз повторил это и после выполнял условие

Аватара пользователя
Chupaka
Сообщения: 1797
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск
Контактная информация:

Re: скрипт

Сообщение Chupaka » 15 сен 2017, 12:10

Можно count=3 увеличить. Но я не совсем понимаю, как у вас язык поворачивается назвать потерю шести пакетов к двум разным адресам "ложным срабатыванием" (sic!)
evgeniy7676 писал(а):
15 сен 2017, 10:45
может сделать чтобы выполнил 4 строки скрипт после через 10 сек еще раз повторил это и после выполнял условие

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

:global yandexprim1 [ping [resolve ukr.net] count=3 routing-table=ISP1_rout interface=ISP1]
:global googleprim1 [ping [resolve google.com.ua] count=3 routing-table=ISP1_rout interface=ISP1]

:delay 10s

:global yandexprim2 [ping [resolve ukr.net] count=3 routing-table=ISP1_rout interface=ISP1]
:global googleprim2 [ping [resolve google.com.ua] count=3 routing-table=ISP1_rout interface=ISP1]


if (($googleprim1 + $yandexprim1 + $googleprim2 + $yandexprim2) != 0) do={:set testPrim true} else={:set testPrim false}

evgeniy7676
Сообщения: 53
Зарегистрирован: 19 май 2016, 14:52

Re: скрипт

Сообщение evgeniy7676 » 04 фев 2019, 10:39

Как переделать скрипт чтобы проверять интернет не через icmp , потому как провайдер отключает инет например за неуплату при этом разрешает протокол icmp

Аватара пользователя
Sir_Prikol
Сообщения: 269
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

Re: скрипт

Сообщение Sir_Prikol » 04 фев 2019, 15:12

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

# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 23q
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:global OFFsite;
:local time [/system clock get time];
:local hour [:pick [/system clock get time] 0 2];
:if ($hour >= 8 and $hour <= 21)  do={
# domain.ru get http
:local result1 none;
:local result2 none;
:do {/tool fetch mode=http address="domain.ru" src-path="/23q.html" dst-path="/23q.html"
:delay 3;
:set result1 [/file get "23q.html" contents]
:delay 3;
/file remove "23q.html"} on-error={:log warning "domain.ru KAPUT"};
:delay 600;
:do {/tool fetch mode=http address="domain.ru" src-path="/23q.html" dst-path="/23q.html"
:delay 3;
:set result2 [/file get "23q.html" contents]
:delay 3;
/file remove "23q.html"} on-error={:log warning "domain.ru KAPUT"};
:if (($result1 = "none") and ($result2 = "none")) do={
:if ($OFFsite = yes) do={} else={
:local smtpserv [:resolve "smtp.yandex.ru"];
:local email "[email protected]";
:local pass 123456789;
/tool e-mail send server=$smtpserv port=587 user=$email password=$pass start-tls=yes to="[email protected]" cc="[email protected]" from=$email subject="567tyk86u89p6ee670 380666666666,380999999999" body="[SENDER]Domain[/SENDER][SMS]Site domain.ru OFF![/SMS]";
:set OFFsite yes}} else={:if ($OFFsite = no) do={} else={:set OFFsite no}}
};
Вроде так, проверяет сайт на доступность, если не может скачать то-что надо, значит интернета нет
Дома:
Uplink - RB3011UiAS (2-ISP(ethernet)белый IP),RB SXT LTE 3-7 (резерв yota (белый IP),Wireless Wire Dish (RBLHGG-60adkit) Uplink белый IP.
2 x RB2011UiAS-2HnD, 2 x RBmAP2nD, 1 x RBwAPG-5HacT2HnD
Хочу uplink - RB1100AHx4 или CCR1036-12G-4S

Аватара пользователя
Sir_Prikol
Сообщения: 269
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

Re: скрипт

Сообщение Sir_Prikol » 04 фев 2019, 15:14

Но это должен быть свой домен где-то далеко, тогда всё будет в шоколаде.

оффтоп, а что, если отключили интернет за неуплату - в браузере не вывешивается инфа от провайдера?
Дома:
Uplink - RB3011UiAS (2-ISP(ethernet)белый IP),RB SXT LTE 3-7 (резерв yota (белый IP),Wireless Wire Dish (RBLHGG-60adkit) Uplink белый IP.
2 x RB2011UiAS-2HnD, 2 x RBmAP2nD, 1 x RBwAPG-5HacT2HnD
Хочу uplink - RB1100AHx4 или CCR1036-12G-4S

evgeniy7676
Сообщения: 53
Зарегистрирован: 19 май 2016, 14:52

Re: скрипт

Сообщение evgeniy7676 » 05 фев 2019, 15:24

:do {/tool fetch url="http://httpstat.us/200" keep-result=no; :global prim "1"} on-error={:global prim "0"}

а как этот запрос послать через маркированный маршрут routing-table=ISP2_rout interface=ISP2

Аватара пользователя
Sir_Prikol
Сообщения: 269
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР
Контактная информация:

Re: скрипт

Сообщение Sir_Prikol » 05 фев 2019, 17:20

Сделать маршрут на домен с маркировковкой через определённый шлюз
Дома:
Uplink - RB3011UiAS (2-ISP(ethernet)белый IP),RB SXT LTE 3-7 (резерв yota (белый IP),Wireless Wire Dish (RBLHGG-60adkit) Uplink белый IP.
2 x RB2011UiAS-2HnD, 2 x RBmAP2nD, 1 x RBwAPG-5HacT2HnD
Хочу uplink - RB1100AHx4 или CCR1036-12G-4S

evgeniy7676
Сообщения: 53
Зарегистрирован: 19 май 2016, 14:52

Re: скрипт

Сообщение evgeniy7676 » 05 фев 2019, 17:51

Хотелось отправлять по очереди то через первого прова то через второго

Ответить