Страница 1 из 1

скрипт

Добавлено: 14 сен 2017, 19:43
evgeniy7676
: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={


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

Re: скрипт

Добавлено: 15 сен 2017, 08:35
Chupaka
Что значит "несколько раз"? Текущие три раза - это не несколько? А сколько - несколько?

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

Re: скрипт

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

Re: скрипт

Добавлено: 15 сен 2017, 12:10
Chupaka
Можно 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}

Re: скрипт

Добавлено: 04 фев 2019, 10:39
evgeniy7676
Как переделать скрипт чтобы проверять интернет не через icmp , потому как провайдер отключает инет например за неуплату при этом разрешает протокол icmp

Re: скрипт

Добавлено: 04 фев 2019, 15:12
Sir_Prikol

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

# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 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}}
};
Вроде так, проверяет сайт на доступность, если не может скачать то-что надо, значит интернета нет

Re: скрипт

Добавлено: 04 фев 2019, 15:14
Sir_Prikol
Но это должен быть свой домен где-то далеко, тогда всё будет в шоколаде.

оффтоп, а что, если отключили интернет за неуплату - в браузере не вывешивается инфа от провайдера?

Re: скрипт

Добавлено: 05 фев 2019, 15:24
evgeniy7676
: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

Re: скрипт

Добавлено: 05 фев 2019, 17:20
Sir_Prikol
Сделать маршрут на домен с маркировковкой через определённый шлюз

Re: скрипт

Добавлено: 05 фев 2019, 17:51
evgeniy7676
Хотелось отправлять по очереди то через первого прова то через второго

Re: скрипт

Добавлено: 05 фев 2019, 17:58
Sir_Prikol
Подождите, вы же хотели, изначально, отправлять через ISP2, а теперь уже другое.

Будте любезны всю задачу, вместе с конфигом сети, в студию, а то телепаты в отпуске

Re: скрипт

Добавлено: 05 фев 2019, 18:32
evgeniy7676
Конфиг скрипта на первой странице в начале темы ,все просто переключение маршрутов ,но не через проверку пингом а через http запрос, так как
провайдер при отключении инета за неуплату разрешает icmp трафик

Re: скрипт

Добавлено: 05 фев 2019, 19:05
Sir_Prikol
Использовать 2 сайта дл проверки, вы-же даже в своём скрипте, разные сайты по разным маршрутам пингуете, так и здесь так-же

Re: скрипт

Добавлено: 05 фев 2019, 19:06
Sir_Prikol
И да, конфиг скрипта был на пинг, сейчас вы его переделали, один Бог и вы знаете как он сейчас выглядит

Re: скрипт

Добавлено: 05 фев 2019, 22:59
evgeniy7676
Прошу помощи не знаю как переделать скрипт

хочу переделать строку
:global yandexprim1 [ping [resolve google.com] count=3 routing-table=ISP1_rout interface=ISP1]
:global yandexrez [ping [resolve google.com] count=3 routing-table=ISP2_rout interface=ISP2]

на новую, но не знаю как запрос отправить через маркированные маршруты двух ISP

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

Re: скрипт

Добавлено: 05 фев 2019, 23:09
Sir_Prikol
Как вы себе представляете одновременную маркировку пакета для двух isp?
Проще тем-же скриптом перенастраивать маршруты для проверки
Я почему спрашиваю настройки сети, ТЕЛЕПАТОВ НЕТ! Как у вас реализован доступ в мир - неизвестно, что вы используете - неизвестно, чем каналы переключаете - неизвестно, как маршруты маркируете - то-же неизвестно. А гадание на кофейной гуще - извините, старенькие уже.

Re: скрипт

Добавлено: 05 фев 2019, 23:16
evgeniy7676

Re: скрипт

Добавлено: 06 фев 2019, 17:18
Chupaka
Можно попробовать через указание src-address= в fetch, а в firewall mangle output помечать пакеты к серверу в зависимости от src-адреса нужной меткой.