как изменить скрипт чтобы пинговались несколько хостов
:local PingCount 5;
:local CheckIp1 208.67.222.222;
:local CheckIp2 208.67.220.220;
:local isp1 [/ping $CheckIp1 count=$PingCount];
:local isp2 [/ping $CheckIp2 count=$PingCount];
:if (($isp1=0) && ($isp2=$PingCount) && ($BackGw=true)) do={
Добавлено:
Для каждого провайдера
Помогите с скриптом
Правила форума
Как правильно оформить вопрос.
Прежде чем начать настройку роутера, представьте, как это работает. Попробуйте почитать статьи об устройстве интернет-сетей. Убедитесь, что всё, что Вы задумали выполнимо вообще и на данном оборудовании в частности.
Не нужно изначально строить Наполеоновских планов. Попробуйте настроить простейшую конфигурацию, а усложнения добавлять в случае успеха постепенно.
Пожалуйста, не игнорируйте правила русского языка. Отсутствие знаков препинания и неграмотность автора топика для многих гуру достаточный повод проигнорировать топик вообще.
1. Назовите технологию подключения (динамический DHCP, L2TP, PPTP или что-то иное)
2. Изучите темку "Действия до настройки роутера".
viewtopic.php?f=15&t=2083
3. Настройте согласно выбранного Вами мануала
4. Дочитайте мануал до конца и без пропусков, в 70% случаев люди просто не до конца читают статью и пропускают важные моменты.
5. Если не получается, в Winbox открываем терминал и вбиваем там /export hide-sensitive. Результат в топик под кат, интимные подробности типа личных IP изменить на другие, пароль забить звездочками.
6. Нарисуйте Вашу сеть, рисунок (схему) сюда. На словах может быть одно, в действительности другое.
Как правильно оформить вопрос.
Прежде чем начать настройку роутера, представьте, как это работает. Попробуйте почитать статьи об устройстве интернет-сетей. Убедитесь, что всё, что Вы задумали выполнимо вообще и на данном оборудовании в частности.
Не нужно изначально строить Наполеоновских планов. Попробуйте настроить простейшую конфигурацию, а усложнения добавлять в случае успеха постепенно.
Пожалуйста, не игнорируйте правила русского языка. Отсутствие знаков препинания и неграмотность автора топика для многих гуру достаточный повод проигнорировать топик вообще.
1. Назовите технологию подключения (динамический DHCP, L2TP, PPTP или что-то иное)
2. Изучите темку "Действия до настройки роутера".
viewtopic.php?f=15&t=2083
3. Настройте согласно выбранного Вами мануала
4. Дочитайте мануал до конца и без пропусков, в 70% случаев люди просто не до конца читают статью и пропускают важные моменты.
5. Если не получается, в Winbox открываем терминал и вбиваем там /export hide-sensitive. Результат в топик под кат, интимные подробности типа личных IP изменить на другие, пароль забить звездочками.
6. Нарисуйте Вашу сеть, рисунок (схему) сюда. На словах может быть одно, в действительности другое.
-
- Модератор
- Сообщения: 3605
- Зарегистрирован: 26 сен 2013, 14:20
- Откуда: НСК
- Контактная информация:
Ну если красиво то помести хосты в массив и пинговать потом попорядку.
Ну либо делайте что то типа
:local CheckIp1 208.67.222.222;
:local CheckIp2 208.67.220.220;
:local isp1Ip1 [/ping $CheckIp1 count=$PingCount];
:local isp1Ip2 [/ping $CheckIp2 count=$PingCount];
Ну и далее условие
Но учтите что данный скрипт довольно кривой и требует допиливания напильником конфига микрота
Ну либо делайте что то типа
:local CheckIp1 208.67.222.222;
:local CheckIp2 208.67.220.220;
:local isp1Ip1 [/ping $CheckIp1 count=$PingCount];
:local isp1Ip2 [/ping $CheckIp2 count=$PingCount];
Ну и далее условие
Но учтите что данный скрипт довольно кривой и требует допиливания напильником конфига микрота
Есть интересная задача и бюджет? http://mikrotik.site
-
- Сообщения: 41
- Зарегистрирован: 29 апр 2014, 15:36
а как условие будет выглядеть
-
- Модератор
- Сообщения: 3605
- Зарегистрирован: 26 сен 2013, 14:20
- Откуда: НСК
- Контактная информация:
еще так можно
:local isp1 ([/ping $CheckIp1 count=$PingCount] + [/ping $CheckIp2 count=$PingCount]);
:local isp1 ([/ping $CheckIp1 count=$PingCount] + [/ping $CheckIp2 count=$PingCount]);
Есть интересная задача и бюджет? http://mikrotik.site
-
- Сообщения: 41
- Зарегистрирован: 29 апр 2014, 15:36
У меня этот отлично работает нужно доработать чтобы по 2 хоста пинговал
:local PingCount 5;
:local CheckIp1 208.67.222.222;
:local CheckIp2 208.67.220.220;
:local eTo "admin@i.com";
:local rName [/system identity get name];
:local rDate [/system clock get date];
:local rTime [/system clock get time];
:local eSubj ($rName . " " . $rDate . " " . $rTime);
:local isp1 [/ping $CheckIp1 count=$PingCount];
:local isp2 [/ping $CheckIp2 count=$PingCount];
:local BackGw [/ip route get [find comment="gw2"] disable];
#if main ISP is DOWN and backup ISP is UP then:
:if (($isp1=0) && ($isp2=$PingCount) && ($BackGw=true)) do={
:log warning "Set routes to backup ISP";
/ip route disable [find comment="gw1"];
/ip route enable [find comment="gw2"];
/ip ipsec installed-sa flush;
/tool e-mail send to=$eTo subject=($eSubj . " Main ISP is DOWN") body="Set routes to backup ISP";
}
:local MainGw [/ip route get [find comment="gw1"] disable];
#if main ISP is UP then:
:if (($isp1=$PingCount) && ($MainGw=true)) do={
:log warning "Set routes to main ISP";
/ip route enable [find comment="gw1"];
/ip route disable [find comment="gw2"];
/ip ipsec installed-sa flush;
/tool e-mail send to=$eTo subject=($eSubj . " Main ISP is UP") body="Set routes to main ISP";
}
:local PingCount 5;
:local CheckIp1 208.67.222.222;
:local CheckIp2 208.67.220.220;
:local eTo "admin@i.com";
:local rName [/system identity get name];
:local rDate [/system clock get date];
:local rTime [/system clock get time];
:local eSubj ($rName . " " . $rDate . " " . $rTime);
:local isp1 [/ping $CheckIp1 count=$PingCount];
:local isp2 [/ping $CheckIp2 count=$PingCount];
:local BackGw [/ip route get [find comment="gw2"] disable];
#if main ISP is DOWN and backup ISP is UP then:
:if (($isp1=0) && ($isp2=$PingCount) && ($BackGw=true)) do={
:log warning "Set routes to backup ISP";
/ip route disable [find comment="gw1"];
/ip route enable [find comment="gw2"];
/ip ipsec installed-sa flush;
/tool e-mail send to=$eTo subject=($eSubj . " Main ISP is DOWN") body="Set routes to backup ISP";
}
:local MainGw [/ip route get [find comment="gw1"] disable];
#if main ISP is UP then:
:if (($isp1=$PingCount) && ($MainGw=true)) do={
:log warning "Set routes to main ISP";
/ip route enable [find comment="gw1"];
/ip route disable [find comment="gw2"];
/ip ipsec installed-sa flush;
/tool e-mail send to=$eTo subject=($eSubj . " Main ISP is UP") body="Set routes to main ISP";
}
-
- Модератор
- Сообщения: 3605
- Зарегистрирован: 26 сен 2013, 14:20
- Откуда: НСК
- Контактная информация:
для последнего вариант
:if ($isp1 = 0) do={/log warning "ISP1 DOWN"}
:if ($isp1 = 10) do={/log warning "ISP1 UP"}
Но условия будут постоянно гадить в лог, поэтому стоит использовать флаги типа:
:global OldIsp1
:global OldIsp2
.....
:if (($isp1 = 0) and ($OldIsp1 != $isp1)) do={/log warning "ISP1 DOWN"}
:if (($isp1 = 10) and ($OldIsp2 != $isp2)) do={/log warning "ISP1 UP"}
:set OldIsp1 $isp1
:set OldIsp2 $isp2
Таким образом событие отработает 1 раз
:if ($isp1 = 0) do={/log warning "ISP1 DOWN"}
:if ($isp1 = 10) do={/log warning "ISP1 UP"}
Но условия будут постоянно гадить в лог, поэтому стоит использовать флаги типа:
:global OldIsp1
:global OldIsp2
.....
:if (($isp1 = 0) and ($OldIsp1 != $isp1)) do={/log warning "ISP1 DOWN"}
:if (($isp1 = 10) and ($OldIsp2 != $isp2)) do={/log warning "ISP1 UP"}
:set OldIsp1 $isp1
:set OldIsp2 $isp2
Таким образом событие отработает 1 раз
Есть интересная задача и бюджет? http://mikrotik.site
-
- Модератор
- Сообщения: 3605
- Зарегистрирован: 26 сен 2013, 14:20
- Откуда: НСК
- Контактная информация:
Ну я же говорил что скрипт кривой )))
Сильно не вникал но видится мне что если дергануть пачкорд из микрота скрипт не увидит упавшего канала.
А дальше надо весь конфиг смотреть
Сильно не вникал но видится мне что если дергануть пачкорд из микрота скрипт не увидит упавшего канала.
А дальше надо весь конфиг смотреть
Есть интересная задача и бюджет? http://mikrotik.site
-
- Сообщения: 41
- Зарегистрирован: 29 апр 2014, 15:36
а где можно посмотреть на новую и желательно с маркировкой маршрутов
-
- Модератор
- Сообщения: 3605
- Зарегистрирован: 26 сен 2013, 14:20
- Откуда: НСК
- Контактная информация:
evgeniy7676 писал(а):а где можно посмотреть на новую и желательно с маркировкой маршрутов
Посмотреть можно заказав мне данный скрипт.
С маркировкой можно так
:global googleM1 [ping 8.8.8.8 count=5 routing-table=lte1]
Есть интересная задача и бюджет? http://mikrotik.site
-
- Сообщения: 1199
- Зарегистрирован: 29 сен 2011, 09:16
вот этим чудом, которое мне состряпали здесь же, на форуме, пинговал два хоста и проверял аптайм микротика
Код: Выделить всё
:local PingCount 3;
:local One xxx.xxx.xxx.xxx;
:local Too xxx.xxx.xxx.xxx;
:local ResultOne [/ping count=$PingCount $One interface=ether1];
:local ResultToo [/ping count=$PingCount $Too interface=ether1];
:local Uptime [/system resource get uptime];
:if ($ResultOne=0 && $ResultToo=0 && $Uptime>00:05:00) do={/system shutdown}