Страница 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-адреса нужной меткой.