Немедленно выключить синхронизацию NTPD

У меня есть задача синхронизировать устройство Linux с сервером ntp. В документации сказано, что по умолчанию ntpd проверяет разница между системным временем и временем сервера, и если смещение находится в пределах порога паники (по умолчанию 1000), ntpd начинает медленно корректировать системное время. Хорошо, это хорошо для меня, мне нужно такое поведение.

Я устанавливаю системное время вручную, а затем запустить ntpd. Используя команду ntpq -c peers, я могу найти процесс синхронизации. Он показывает, что устройство подключается к серверу и получает пакеты. Но через минуту или две системное время изменилось с одним большим шагом на время сервера. И это плохо в моей ситуации , Мне нужно медленно исправлять. У меня нет рабочих идей, почему это так !!!

Я пробовал это с разными серверами и машинами linux, все то же самое.

Устройство на основе raspberry pi 2, сборка образа linux с buildroot .

# ntpd --version
ntpd 4.2.8p2@1.3265-o Fri Jul 29 11:57:46 UTC 2016 (1)
#
# uname -a
Linux buildroot 3.18.12-v7 #3 SMP PREEMPT Thu May 12 17:53:44 MSK 2016 armv7l GNU/Linux
#
# cat /etc/ntp.conf
server 10.0.0.111 #my local server
driftfile /etc/ntp.drift
logfile /var/log/ntp/ntp.log
restrict 10.0.0.111 nomodify noquery #ban any packets from server, which send to modify local time

Я не могу найти объяснения об этом. Все вопросы касаются того, как быстро синхронизировать время при запуске демона, но мне нужно обратное.

Итак, понятия не имею .....

-1
задан 10 August 2016 в 09:22
2 ответа

По умолчанию ntpd будет изменять (а не нарастать) время, если смещение больше 128 мс. Вы можете избежать этого с помощью параметра командной строки -x , но будьте осторожны: исправление одной секунды смещения займет около 2000 секунд, поэтому это может занять много времени.

 -x    Normally, the time is slewed if the offset is less than the step 
       threshold, which is 128 ms by  default,  and  stepped  if
       above  the  threshold.  This option sets the threshold to 600 s, 
       which is well within the accuracy window to set the clock
       manually.  Note: Since the slew rate of typical Unix kernels is 
       limited to 0.5 ms/s, each second of adjustment requires an
       amortization  interval of 2000 s.  Thus, an adjustment as much as 600 s 
       will take almost 14 days to complete.  This option
       can be used with the -g and -q options.  
       Note: The kernel time discipline is disabled with this option.
6
ответ дан 5 December 2019 в 18:59

Для однократной синхронизации времени вы можете использовать два разных метода / протокола:

  • ntpdate использует протокол SNTP, и это очень быстро
  • ntpd -q использует протокол NTP и, хотя и медленнее, но более точно.
1
ответ дан 5 December 2019 в 18:59

Теги

Похожие вопросы