Я хочу, чтобы мое время обновления ntpd чаще и как можно скорее
Я пытаюсь настроить ntpserver и клиент. Что мне делать, чтобы синхронизировать время ntpd чаще и как можно скорее? Когда я вручную изменяю время в клиенте, а затем перезапускаю службу ntpd, через 16 секунд происходит синхронизация времени. Но когда я меняю время снова без перезапуска службы ntpd или перезагрузки сервера, синхронизация времени занимает 15-16 минут. Я хочу проверить ntpd время каждые 16 или 20 сек.
NTP-сервер: 192.168.135.130 NTP-клиент: 192.168.135.131
##server config###
driftfile` /var/lib/ntp/drift
restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
restrict time.google.com mask 255.255.255.245 nomodify notrap noquery
server time.google.com
restrict 192.168.135.0 mask 255.255.255.0
############################################################
##client config##
driftfile /var/lib/ntp/drift
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
server 192.168.135.130 iburst burst minpoll 4 maxpoll 4
logfile /var/log/ntp.log
logconfig all
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
###########################################################
##drift file##
-12.298
2 ответа
Я думаю, что вы действуете под фундаментальным заблуждением.
ntpd предназначен для работы все время и поддерживает время в течение микросекунд опорных часов, пока оно работает. Он не опрашивает сервер времени каждые 15-20 минут и не корректирует время; он работает все время.
Я подозреваю, что вы видите правильное поведение ntpd. Когда демон запускается, он шагает (резко меняет) часы, чтобы исправить их на исходные часы, возможно потому, что он настроен так, чтобы разрешить такое поведение как одноразовое изменение, но только при запуске (в противном случае это может занять очень много времени). чтобы приблизиться к нужному времени, скажем, если часы показывают 1 января 1970 года, когда компьютер загрузился).
После запуска большую часть времени ntpd НИКОГДА не настраивается (кардинально менять) часы. Вместо этого он вращает (постепенно меняет) часы до тех пор, пока они не будут корректными / синхронизированными, поэтому приложения, работающие на вашем компьютере, не пострадают (например, сценарии cron не запускаются, потому что вы просто пропустили 1:00 сегодня). Я думаю, это то, что вы видели, когда устанавливали время вручную во время работы ntpd.
Если вы запустите ntpd таким образом, у вас никогда не должно быть неправильных (отключенных более чем на микросекунды) часов на компьютере, и вам никогда не придется устанавливать / изменять время самостоятельно; Вот как ntpd предназначен для работы.
Возможно, вы более привыкли к другой среде, в которой вы планируете периодически синхронизировать часы по сети, задавая другому компьютеру: "Сколько сейчас времени?" и установка часов на ответ. У этого есть две проблемы, одна из которых - та, которую вы заметили (часы могут занять некоторое время для исправления, если они расходятся), а другая - то, что ваши часы будут более неточными, чем если бы вы использовали ntpd (вы будете задержка между вашим компьютером и сервером времени, вероятно, в миллисекундах)
Я надеюсь, что эта информация полезна для вас.
Вы можете смешивать две вещи - NTP-клиент и сервер.
NTP-клиент периодически синхронизируется с сервером, и вы можете настроить syns еще чаще, используя cron (например, используя ntpdate). Похоже, это то, что вы хотите сделать.
NTP-сервер, который вы описали выше, намного сложнее в работе и медленно запускается. Это связано с тем, что он подключается к нескольким другим серверам и очень старается быть очень точным, даже принимая во внимание задержку и изменение задержки. Таким образом, для начала требуется много времени.
Все более мелкие организации будут использовать доступный через Интернет NTP-сервер, но более крупные организации - или организации, которым требуется более высокая точность, будут запускать сервер 1 ntp и указывать клиентам на это +, чтобы уменьшить неточность, вызванную изменениями задержки, и снизить нагрузку на другие серверы).
РЕДАКТИРОВАТЬ
Возможно, вы могли бы запустить тривиальный скрипт, похожий на тот, который следует в фоновом режиме, чтобы синхронизировать часы (но мне не нравится это решение)
#! /bin/bash
NTPSERVER=clock.isc.org
SECS=20
while [ 1 ]
do
/usr/sbin/ntpdate $NTPSERVER
sleep $SECS
done
Допустим, вы сохранили этот файл в / usr / local / bin / keeptime -
chmod 755 /usr/local/bin/keeptime
Сделаем его исполняемым и добавим
/ usr / local / bin / keeptime &
в верхней части /etc/rc.local (в зависимости от вашего дистрибутива) запустите его в фоновом режиме.