Информация
Настройка
Новости
Контакты
Новинка
Распродажа
Оплата
Доставка
Загрузки
  • Прошивки
    • 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
    SetNtpServers - установка системного времени через NTP, альтернативный скрипт

    SetNtpServers - установка системного времени через NTP, альтернативный скрипт

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    SetNtpServers - установка системного времени через NTP, альтернативный скрипт, RouterOS
     
    TealFrog
    Guest
    #1
    0
    28.10.2011 23:01:00
    Я предоставляю этот скрипт как альтернативу примеру скрипта, приведённому в примерах по адресу http://wiki.mikrotik.com/wiki/Manual:Scripting-examples#Allow_use_of_ntp.org_pool_service_for_NTP. Скрипт работает аналогично, используя пул-сервис ntp.org для настройки и установки IP-адресов NTP-серверов в конфигурации SNTP-клиента Mikrotik. Скрипт, который я представляю, основан на примере кода по указанной ссылке. Он проще, компактнее и представляет собой одиночный скрипт, который не зависит от глобальных переменных.

    Этот скрипт не использует и не отправляет электронные письма, поэтому для некоторых пользователей он может быть не подходящей альтернативой. Скрипт довольно легко настраивается и используется. Сохраните скрипт в ROS, задайте имя скрипта, установите массив arrNtpSystems с основным и вторичным NTP-пулом на основе данных с http://www.pool.ntp.org. По умолчанию скрипт настроен для Северной Америки. Запланируйте регулярный запуск скрипта.

    # SetNtpServers — проверка и установка NTP-серверов из NTP-пула  
    # v1.2 Проверено и разработано на ROS v5.7  
    #  
    # При необходимости измените следующую строку, имя в progName должно совпадать с именем скрипта  
    :local progName "SetNtpServers";  

    # Массив NTP-пулов для использования (проверьте на www.pool.ntp.org), один или максимум два — основной и резервный  
    # Измените следующую строку и переменную массива в зависимости от вашего региона (по умолчанию — Северная Америка).  
    :local arrNtpSystems ("0.north-america.pool.ntp.org", "1.north-america.pool.ntp.org");  
    # В качестве альтернативы можно использовать пул для США:  
    #:local arrNtpSystems ("0.us.pool.ntp.org", "1.us.pool.ntp.org");  
    #  
    # Дальнейших изменений не требуется.  
    :put "$progName: Запуск...";  
    :log info "$progName: Запуск...";  
    :set arrNtpSystems [ :toarray $arrNtpSystems ];
    :if (( [ :len $arrNtpSystems ] < 1 ) or ( [ :len $arrNtpSystems ] > 2 )) do={
       :put "$progName: ОШИБКА — массив NTP-систем (\$arrNtpSystems) должен содержать один или два DNS-имени.";  
       :log info "$progName: ОШИБКА — массив NTP-систем (\$arrNtpSystems) должен содержать один или два DNS-имени.";  
    } else={  
       :local arrRosNtpSetting ("primary-ntp", "secondary-ntp");  
       :local i 0;  
       :foreach strNtpSystem in ($arrNtpSystems) do={  
           :local ipAddrNtpSystem [ :resolve $strNtpSystem ];
           :local strRosNtpSetting [ :pick $arrRosNtpSetting $i ];
           :local strCurrentNtpIp [ /system ntp client get $strRosNtpSetting ];
           :put "$progName: DNS-имя NTP-сервера $strNtpSystem разрешилось в $ipAddrNtpSystem.";  
           :log info "$progName: DNS-имя NTP-сервера $strNtpSystem разрешилось в $ipAddrNtpSystem.";  
           :put "$progName: Текущая настройка $strRosNtpSetting — $strCurrentNtpIp.";  
           :log info "$progName: Текущая настройка $strRosNtpSetting — $strCurrentNtpIp.";  
           :if ( [ :toip $ipAddrNtpSystem ] != [ :toip $strCurrentNtpIp ] ) do={
               :put "$progName: Изменяем настройку $strRosNtpSetting на $ipAddrNtpSystem.";  
               :log info "$progName: Изменяем настройку $strRosNtpSetting на $ipAddrNtpSystem.";  
               :local strCommand [ :parse "/system ntp client set $strRosNtpSetting=\"$ipAddrNtpSystem\"" ];
               $strCommand;  
           } else={  
               :put "$progName: Для настройки $strRosNtpSetting изменений не требуется.";  
               :log info "$progName: Для настройки $strRosNtpSetting изменений не требуется.";  
           }  
           :set i ($i + 1);  
       }  
    }  
    :put "$progName: Готово.";  
    :log info "$progName: Готово.";  

    Создайте запись планировщика с примерно таким содержанием:  
    /system scheduler  
    add comment="Check and set NTP servers" disabled=no interval=12h name=SetNtpServers on-event=SetNtpServers policy=read,write,test start-date=oct/01/2011 start-time=00:00:00
     
     
     
    gbh
    Guest
    #2
    0
    07.08.2012 09:28:00
    Отличный скрипт, большое спасибо.
     
     
     
    gbh
    Guest
    #3
    0
    07.08.2012 09:28:00
    Отличный сценарий, большое спасибо.
     
     
     
    milis
    Guest
    #4
    0
    08.08.2013 09:08:00
    Этот скрипт отличный, но у меня проблема с версией ОС 6.2. Кто-нибудь знает решение? В целом, с написанием скриптов я не очень! Логи показывают, что всё нормально, но в ntp-клиенте изменений нет. Пост уже старый, но может кто-то ещё ищет ответ.
     
     
     
    icebox
    Guest
    #5
    0
    15.03.2014 09:18:00
    Этот скрипт работает в версии 6.10?
     
     
     
    xPucTu4
    Guest
    #6
    0
    24.03.2014 20:15:00
    У меня есть несколько роутеров без доступа в интернет. Когда пытаюсь использовать какой-то роутер в качестве NTP-сервера, на клиентах выскакивает ошибка «server-not-synchronized». Версия 6.11 (последняя).

    Я нашёл простое, но опасное решение, если у вас есть свободный Linux-бокс. Можно подстроить его под вашу сеть и добавить в cron. Ещё понадобится sshpass — сейчас он есть практически во всех Linux-дистрибутивах.

    #!/bin/bash

    # имя пользователя и пароль
    sshuser="admin"  
    passwrd="blablabla_this_is_not_my_real_password"

    # адреса целей
    targs="255.2 255.4 255.6 255.12 255.35 255.37 72.3 72.20 72.21 72.96 68.1 68.245 68.246 0.4 0.26 0.50 0.61 0.62"

    for rtr in $targs
    do  
       t=`date +"%H:%M:%S"`  
       d=`date +"%b/%d/%Y"`  
       executecmd='sshpass -p '$passwrd' ssh -oStrictHostKeyChecking=no -p 26 '$sshuser'@192.168.'$rtr' "/system clock set time='$t' date='$d' time-zone-name=America/Tortola"'  
       eval $executecmd  
    done
     
     
     
    Alupis
    Guest
    #7
    0
    09.11.2014 01:21:00
    Могу подтвердить, что скрипт NTP работает без изменений на версии v6.21.1. Я заметил, что прошло немного времени, прежде чем время действительно обновилось. Также убедитесь, что вы указали ваш часовой пояс в меню Система → Часы.
     
     
     
    BartoszP
    Guest
    #8
    0
    09.11.2014 07:58:00
    Разве не проще настроить локальный NTP-сервер для вашей локальной сети на этом свободном linux-компьютере? Быстрый пример: http://ubuntuforums.org/showthread.php?t=862620
     
     
     
    gotsprings
    Guest
    #9
    0
    09.11.2014 16:48:00
    /system ntp client set primary-ntp=[:resolve 0.pool.ntp.org]
    /system ntp client set secondary-ntp=[:resolve 1.pool.ntp.org]
     
     
     
    janisk
    Guest
    #10
    0
    10.11.2014 11:09:00
    Да, добавь это в планировщик, чтобы получать обновления. Если ты не используешь пакет NTP, просто введи доменное имя в server-dns-names, и при каждом обновлении RouterOS будет проверять IP. (Кстати, это список через запятую.)
     
     
     
    Alupis
    Guest
    #11
    0
    10.11.2014 18:40:00
    Конечно, если он у вас есть. Некоторые просто хотят, чтобы их роутер сам синхронизировал время по NTP… или у них нет лишнего устройства для настройки NTP-сервера, как это бывает в небольших домашних или офисных сетях.
     
     
     
    BartoszP
    Guest
    #12
    0
    11.11.2014 08:54:00
    Ты прав, но…
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2025 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры