Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • Changelogs
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    RouterOS
    Нужна помощь с написанием скрипта для автоматического переключения (failover).

    Нужна помощь с написанием скрипта для автоматического переключения (failover).

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Нужна помощь с написанием скрипта для автоматического переключения (failover)., RouterOS
     
    p0rkch0p
    Guest
    #1
    0
    15.03.2007 16:02:00
    Приветствую, коллеги-пользователи Mikrotik! У меня в Филиппинах интернет-кафе, и у меня два провайдера DSL. Несколько недель я пытаюсь настроить балансировку нагрузки и автоматическое переключение при отказе. Думаю, руководство по балансировке нагрузки в вики довольно неплохое, и кажется, что всё работает нормально. Затруднения у меня со скриптом проверки соединения. У меня роутер RB532, и мне нужна помощь в скрипте автоматического переключения при отказе. Пожалуйста, помогите и скажите, что я делаю не так. Я позаимствовал часть скрипта с форума, но не могу заставить его работать должным образом, возможно, я пропустил синтаксис или всё сделал неправильно. Ничего не происходит, когда я пытаюсь запустить этот скрипт вручную.

    # Установка переменных:
    :local pingcount 3
    :local ipA 201.84.93.24
    :local ipB 203.215.102.14
    :local website http://www.yahoo.com

    # Проверка шлюзов с src:
    :local pingresultA [/ping $website src-address=$ipA count=$pingcount]
    :local pingresultB [/ping $website src-address=$ipB count=$pingcount]
    :local timenow ([/system clock get date] . " / " . [/system clock get time])

    Если Link A или Link B не работает, то:
    :if (($pingresultA=0) || ($pingresultB=0)) do={
    :if (($pingresultA=0) && ($pingresultB>0)) do={
    /system script run linkA_down_script
    } else= {
    :if (($pingresultA>0) && ($pingresultB=0)) do={
    /system script run linkB_down_script
    }
    }
    } else={
    Link A и Link B работают:
    :if ((($pingresultA=$pingcount) && ($pingresultB=$pingcount))||(($pingresultA>0) && ($pingresultB>0))) do={
    /system script run all_links_up_script
    :log info " ВСЕ соединения работают"
    }
    }

    Буду очень благодарен за любую помощь и советы. Спасибо!
     
     
     
    mneumark
    Guest
    #2
    0
    16.03.2007 04:26:00
    Почему бы тебе не попробовать Netwatch? Он будет автоматически запускать скрипт, когда обнаружит сбой.
     
     
     
    p0rkch0p
    Guest
    #3
    0
    16.03.2007 10:22:00
    Я об этом думал, но проблема с Netwatch в том, что нельзя точно узнать, какая ссылка не работает, или шлюз работает, но связь с интернетом отсутствует. В отличие от скрипта, где можно пинговать, используя конкретный IP-источник для проверки. Буду очень благодарен за любую помощь.
     
     
     
    mneumark
    Guest
    #4
    0
    16.03.2007 19:36:00
    Попробовал это, и сработало на моей конфигурации… Я просто поменял IP-адреса… # задаём переменные: local pingcount 3 local ipA 201.84.93.24 local ipB 203.215.102.14 local website http://www.yahoo.com # пингуем шлюзы с исходным адресом: local pingresultA [/ping $website src-address=$ipA count=$pingcount] local pingresultB [/ping $website src-address=$ipB count=$pingcount] local timenow ([/system clock get date] . " / " . [/system clock get time]) Если Link A или Link B не работает, то: if (($pingresultA=0) || ($pingresultB=0)) do={ if (($pingresultA=0) && ($pingresultB>0)) do={ /system script run linkA_down_script } else={ if (($pingresultA>0) && ($pingresultB=0)) do={ /system script run linkB_down_script } } } else={ if ((($pingresultA=$pingcount) && ($pingresultB=$pingcount))||(($pingresultA>0) && ($pingresultB>0))) do={ /system script run all_links_up_script; :log info " ВСЕ ссылки работают " } }
     
     
     
    p0rkch0p
    Guest
    #5
    0
    19.03.2007 00:09:00
    Как ты это тестировал? Он вызывал твои другие скрипты? Или ты просто скопировал и вставил его в терминал? Пожалуйста, расскажи, как ты это делал? Ты вносил изменения в скрипт, который я выложил?
     
     
     
    mneumark
    Guest
    #6
    0
    19.03.2007 02:16:00
    В терминале вставлял построчно, чтобы протестировать. Похоже, нашел одну ошибку, и я ее исправил.
     
     
     
    p0rkch0p
    Guest
    #7
    0
    20.03.2007 00:42:00
    Использовал твой скрипт в системном скрипте, нажал кнопку "Запустить скрипт", ничего не произошло… что я делаю не так??? Из всех скриптов, что я делал, только этот использует условные функции, я что-то делаю не так??? Пытался вставить в терминал, ошибок не было. Пожалуйста, помоги.
     
     
     
    mneumark
    Guest
    #8
    0
    20.03.2007 05:18:00
    Окей, давай разберем твой скрипт… Чтобы тебе было проще, сделай вот так вместо этого: :if (($pingresultA=0) && ($pingresultB>0)) do={ /system script run linkA_down_script } :if (($pingresultA>0) && ($pingresultB=0)) do={ /system script run linkB_down_script } :if (($pingresultA>0) && ($pingresultB>0)) do={ /system script run all_links_up_script; :log info " ALL are Links are Up and Running" }
     
     
     
    p0rkch0p
    Guest
    #9
    0
    21.03.2007 22:38:00
    Попробую, спасибо.
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры