+7 (930) 174-50-87
Отдел продаж
Заказать звонок
Режим работы:
Пн-Пт 9:00—23:00;
Сб-Вс 10:00-20:00
Корзина пуста0 руб.0
Товары в корзине
корзина пуста
КАТАЛОГ ТОВАРОВ
0
Товары в корзине
корзина пуста
+7 (930) 174-50-87
Отдел продаж

MikroTik SNTP-Client ( настройка точного времени, даты )

Настройка точного времени, даты в микротик, скрипт полностью проверяет на российских NTP.

Скрипт написан для ввода с терминала.

Вводим временную зону, у вас может отличаться. изменить можно в WinBox  перейдя в system, затем в clock

/system clock
set time-zone-name=Europe/Moscow

Включаем и присваиваем NTP сервера, это не важно если они окажутся не рабочими. скрипт все ровно их заменит на действующие.

/system ntp client
set enabled=yes primary-ntp=62.231.6.98 secondary-ntp=194.190.168.1


Переходим в планировщик

/system scheduler


Вводим основной  скрипт SNTP-Client, основная задача его: из доменных имен преобразовать в IP  адреса и передать NTP серверу микротик.

в скрипте выделены 2 NTP сервера 0.ru.pool.ntp.org и 1.ru.pool.ntp.org их можно заменить на другие, какие хотите, интервал 10 мин.


add interval=10m name=SNTP-Client on-event=":local progName \"SetNtpServers\";\r\ \n:local arrNtpSystems (\"0.ru.pool.ntp.org\", \"1.ru.pool.ntp.org\");\r\ \n:put \"\$progName: Running...\";\r\ \n:log info \"\$progName: Running...\";\r\ \n:set arrNtpSystems [ :toarray \$arrNtpSystems ];\r\ \n:if (( [ :len \$arrNtpSystems ] < 1 ) or ( [ :len \$arrNtpSystems ] > 2 )) do={\r\ \n:put \"\$progName: ERROR NTP Systems array (\\\$arrNtpSystems) must be either one or two DNS names.\";\r\ \n:log info \"\$progName: ERROR NTP Systems array (\\\$arrNtpSystems) must be either one or two DNS names.\";\r\ \n} else={\r\ \n:local arrRosNtpSetting (\"primary-ntp\", \"secondary-ntp\");\r\ \n:local i 0;\r\ \n:foreach strNtpSystem in (\$arrNtpSystems) do={\r\ \n:local ipAddrNtpSystem [ :resolve \$strNtpSystem ];\r\ \n:local strRosNtpSetting [ :pick \$arrRosNtpSetting \$i ];\r\ \n:local strCurrentNtpIp [ /system ntp client get \$strRosNtpSetting ];\r\ \n:put \"\$progName: NTP server DNS name \$strNtpSystem resolves to \$ipAddrNtpSystem.\";\r\ \n:log info \"\$progName: NTP server DNS name \$strNtpSystem resolves to \$ipAddrNtpSystem.\";\r\ \n:put \"\$progName: Current \$strRosNtpSetting setting is \$strCurrentNtpIp.\";\r\ \n:log info \"\$progName: Current \$strRosNtpSetting setting is \$strCurrentNtpIp.\";\r\ \n:if ( [ :toip \$ipAddrNtpSystem ] != [ :toip \$strCurrentNtpIp ] ) do={\r\ \n:put \"\$progName: Changing \$strRosNtpSetting setting to \$ipAddrNtpSystem.\";\r\ \n:log info \"\$progName: Changing \$strRosNtpSetting setting to \$ipAddrNtpSystem.\";\r\ \n:local strCommand [ :parse \"/system ntp client set \$strRosNtpSetting=\\\"\$ipAddrNtpSystem\\\"\" ];\r\ \n\$strCommand;\r\ \n} else={\r\ \n:put \"\$progName: No changes were made for the \$strRosNtpSetting NTP setting.\";\r\ \n:log info \"\$progName: No changes were made for the \$strRosNtpSetting NTP setting.\";\r\ \n}\r\ \n:set i (\$i + 1);\r\ \n}\r\ \n}\r\ \n:put \"\$progName: Done.\";\r\ \n:log info \"\$progName: Done.\"" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive start-time=startup


Если есть желание вводить скрипт в окне WinBox , непосредственно в планировщике, ниже приложен скрипт основного кода.


:local progName "SetNtpServers";
:local arrNtpSystems ("0.ru.pool.ntp.org", "1.ru.pool.ntp.org");
:put "$progName: Running...";
:log info "$progName: Running...";
:set arrNtpSystems [ :toarray $arrNtpSystems ];
:if (( [ :len $arrNtpSystems ] < 1 ) or ( [ :len $arrNtpSystems ] > 2 )) do={
:put "$progName: ERROR NTP Systems array (\$arrNtpSystems) must be either one or two DNS names.";
:log info "$progName: ERROR NTP Systems array (\$arrNtpSystems) must be either one or two DNS names.";
} 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: NTP server DNS name $strNtpSystem resolves to $ipAddrNtpSystem.";
:log info "$progName: NTP server DNS name $strNtpSystem resolves to $ipAddrNtpSystem.";
:put "$progName: Current $strRosNtpSetting setting is $strCurrentNtpIp.";
:log info "$progName: Current $strRosNtpSetting setting is $strCurrentNtpIp.";
:if ( [ :toip $ipAddrNtpSystem ] != [ :toip $strCurrentNtpIp ] ) do={
:put "$progName: Changing $strRosNtpSetting setting to $ipAddrNtpSystem.";
:log info "$progName: Changing $strRosNtpSetting setting to $ipAddrNtpSystem.";
:local strCommand [ :parse "/system ntp client set $strRosNtpSetting=\"$ipAddrNtpSystem\"" ];
$strCommand;
} else={
:put "$progName: No changes were made for the $strRosNtpSetting NTP setting.";
:log info "$progName: No changes were made for the $strRosNtpSetting NTP setting.";
}
:set i ($i + 1);
}
}
:put "$progName: Done.";
:log info "$progName: Done."

Мы используем файлы cookie, чтобы сайт был лучше для вас.