Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • 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
    Ошибка скрипта

    Ошибка скрипта

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Ошибка скрипта, RouterOS
     
    Pigsfoot
    Guest
    #1
    0
    16.09.2021 08:07:00
    Привет! У нас есть простой скрипт, который проверяет подключение к интернету через интерфейс LTE, но, похоже, при работе интерфейса LTE возникает ошибка. Не уверен, может, просто неправильно указал имя интерфейса. Не мог бы кто-нибудь взглянуть и дать обратную связь, пожалуйста?  

    Скрипт:  
    if ([/ping 8.8.8.8 count=10] = 0) do={
    :log error "** LTE DOWN **";  
    /interface disable lte  
    /delay 5s  
    /interface enable lte  
    } else={  
    :log info "** LTE ONLINE **";  
    }  

    Список интерфейсов  
    Flags: D - динамический, X - отключён, R - работает, S - ведомый  

    #     NAME                                TYPE       ACTUAL-MTU L2MTU  MAX-L2MTU  
    0  R  ether1                              ether            1500  1596       2026  
    1     ether2                              ether            1500  1596       2026  
    2     ether3                              ether            1500  1596       2026  
    3  R  lte1                                lte              1480  

    Большое спасибо!
     
     
     
    Pigsfoot
    Guest
    #2
    0
    06.10.2021 15:04:00
    @rextended Извиняюсь, что воскресаю эту тему, но хотел задать вопрос, если можно. Есть ли способ изменить этот скрипт так, чтобы при трёх неудачных попытках пинга он перезагружал роутер, а не отключал/включал LTE-интерфейс? Я несколько раз сталкивался с этой проблемой и думаю, что LTE-интерфейс зависает из-за множества ошибок «not registered», но не уверен, означает ли это, что LTE-интерфейс отсутствует, ведь скрипт это проверяет. Приведённый пример случился после автоматической перезагрузки роутера, которая происходит каждый день в 23:00. Спасибо!
     
     
     
    CZFan
    Guest
    #3
    0
    06.10.2021 15:17:00
    Я бы предпочёл перезагрузить «модем», а не роутер, так лог сохранятся и всё такое. Вот исправленный скрипт от @rextended:

    :global ltestatus  
    :if ([:typeof $ltestatus] = "nothing") do={:set ltestatus "offline"}
    /interface lte  
    :if ([:len [find]] > 0) do={
       :if ([:ping 8.8.8.8 count=10] = 0) do={
           :if ($ltestatus = "online") do={:log warning "*** LTE НЕ РАБОТАЕТ ***"}  
           :set ltestatus "offline"  
            # disable [find]
            # :delay 5s  
            # enable [find]
            /system routerboard usb power-reset duration=10  
       } else={  
           :if ($ltestatus = "offline") do={:log info "*** LTE В СЕТИ ***"}  
           :set ltestatus "online"  
       }  
    } else={  
      :log error "*** LTE ПРОПАЛ ***"  
      /system reboot  
    }
     
     
     
    rextended
    Guest
    #4
    0
    06.10.2021 15:46:00
    Да... :global ltestatus  
    :if ([:typeof $ltestatus] = "nothing") do={:set ltestatus "offline"}
    /interface lte  
    :if ([:len [find]] > 0) do={
       :if ([:ping 8.8.8.8 count=10] < 8) do={
           :log error "*** LTE РАБОТАЕТ НЕПРАВИЛЬНО - ПЕРЕЗАГРУЗКА ***"  
           /system reboot  
       } else={  
           :if ($ltestatus = "offline") do={:log info "*** LTE В СЕТИ ***"}  
           :set ltestatus "online"  
       }  
    } else={  
      :log error "*** LTE ПРОПАЛО ***"  
      /system reboot  
    }
     
     
     
    Pigsfoot
    Guest
    #5
    0
    06.10.2021 16:18:00
    Еще раз большое спасибо, @rextended. Предполагаю, что команда «< 8» — это счетчик? @CZFan, спасибо за помощь, все критические логи сохраняются на диск, так что перезагрузка роутера — лучший вариант для меня.
     
     
     
    rextended
    Guest
    #6
    0
    06.10.2021 16:23:00
    По крайней мере 3 провалились? 10 - 3 = 7 (по крайней мере 7 хороших) < 8 (хуже, чем 8, потому что 8 — хорошие, всего 2 проваленных).
     
     
     
    Pigsfoot
    Guest
    #7
    0
    06.10.2021 16:34:00
    А, теперь всё яснее. Спасибо за всю твою помощь в этом.
     
     
     
    CZFan
    Guest
    #8
    0
    06.10.2021 16:36:00
    @pigsfoot, мне кажется, тебе нужно примерно такое: [:ping 8.8.8.8 count=3] = 0 Это отправит 3 ping-запроса, если все три не пройдут — тогда делай то, что нужно. Если нет, придется подробнее объяснить, что именно ты хочешь.
     
     
     
    CZFan
    Guest
    #9
    0
    06.10.2021 16:49:00
    Согласен, но это то, что он попросил. Я бы хотел использовать этот скрипт, не мог бы ты изменить его так, чтобы он мониторил 2 устройства во внутренней сети, то есть пинговать одновременно 8.8.8.8 и 1.1.1.1, и если оба не отвечают, то предпринимать действия?
     
     
     
    CZFan
    Guest
    #10
    0
    06.10.2021 17:50:00
    Неважно, вроде вроде всё работает… :global ltestatus  
    :if ([:typeof $ltestatus] = "nothing") do={:set ltestatus "offline"}
    /interface lte  
    :if ([:len [find]] > 0) do={
       :if (([:ping 8.8.8.8 count=5] = 0) && ([ping 1.1.1.1 count=5] = 0)) do={
               :log warning "*** LTE-соединение потеряно, перезагружаем модем... ***"  
               /system routerboard usb power-reset duration=10  
       } else={  
           :if ($ltestatus = "offline") do={:log info "*** LTE в сети ***"}  
           :set ltestatus "online"  
       }  
    } else={  
      :log error "*** Нет LTE-интерфейсов... ***"  
      /system reboot  
    }
     
     
     
    Larsa
    Guest
    #11
    0
    06.10.2021 20:32:00
    Просто несколько предложений. Мы отказались от использования центральных DNS-адресов вроде 8.8.8.8 для всех наших LTE-соединений клиентов, потому что иногда сталкивались с глобальными ошибками маршрутизации, хотя местная линия при этом работала. Теперь мы используем только адреса внутри сетей самих провайдеров, чтобы проверять возможные ошибки связи. Также перед перезапуском LTE-линии мы делаем паузу в одну минуту, так как заметили, что многие ошибки связи восстанавливаются автоматически за это время. Обычно мы не перезагружаем устройство — просто выключаем и включаем интерфейс, и это работает так же эффективно. Кроме того, мы отправляем сообщения об ошибках, связанных с неполадками связи, по SMS. В сочетании с внешним мониторингом LTE-устройства это позволяет нам сопоставлять периоды простоя и выяснять, исходит ли проблема от оператора или же из локальной установки. В крайнем случае, когда IP-соединения отсутствуют, можно проверить статус или перезагрузить устройство, отправив соответствующую команду через входящее SMS. Это очень выручает и экономит множество часов ненужных поездок, ведь многие LTE-линии установлены в отдалённых филиалах — далеко в глубинке или на удалённых островах.
     
     
     
    rextended
    Guest
    #12
    0
    06.10.2021 16:42:00
    Слишком жестко, что-то может заблокировать соединение и перезагрузить устройство без причины…
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры