Я настроил systemd timesyncd, чтобы получить время с сервера NTP:
/etc/systemd/timesyncd.conf > NTP=ca.pool.ntp.org
systemctl restart systemd-timesyncd.service
timedatectl set-ntp true
Статус следующий:
$ timedatectl status
...
Network time on: yes
NTP synchronized: no
Как следует из вывода, время еще не синхронизировано. Может ли кто-нибудь помочь мне со следующими вопросами?
Без установки дополнительных пакетов ... Отключите NTP, вручную установите время достаточно близко, снова включите NTP:
$ timedatectl set-ntp false
Получите приблизительное МЕСТНЫЙ время с настенных часов, вашего телефона, Интернета. Это не обязательно должно быть идеально, потому что мы снова включим ntp ...
$ sudo timedatectl set-time "2019-06-22 13:41:00"
$ sudo timedatectl set-ntp true
Подождите несколько минут. Если ответ в timedatectl не меняется, значит, у вас проблемы с сетью.
john@mybox:~$ timedatectl
Local time: Sat 2019-06-22 13:49:53 AEST
Universal time: Sat 2019-06-22 03:49:53 UTC
RTC time: Sat 2019-06-22 03:49:54
Time zone: Australia/Sydney (AEST, +1000)
System clock synchronized: no
NTP service: active
RTC in local TZ: no
«Системные часы синхронизированы: нет» изменится на «да», когда они отрегулированы достаточно, чтобы считаться «синхронизированными». Что-то вроде:
john@mybox:~$ timedatectl
Local time: Wed 2020-07-22 09:50:32 AEST
Universal time: Tue 2020-07-21 23:50:32 UTC
RTC time: Tue 2020-07-21 23:50:32
Time zone: Australia/Sydney (AEST, +1000)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
и
john@mybox:~$ timedatectl timesync-status
Server: 91.189.91.157 (ntp.ubuntu.com)
Poll interval: 1min 4s (min: 32s; max 34min 8s)
Leap: normal
Version: 4
Stratum: 2
Reference: 8CCBCC4D
Precision: 1us (-24)
Root distance: 64.781ms (max: 5s)
Offset: -88.040ms
Delay: 754.084ms
Jitter: 78.200ms
Packet count: 8
Frequency: -187.812ppm
$ cat /etc/systemd/timesyncd.conf
[Time]
NTP=pool.ntp.org
$ timedatectl timesync-status
Server: 13.210.208.89 (au.pool.ntp.org)
Poll interval: 8min 32s (min: 32s; max 34min 8s)
Packet count: 0
$ grep systemd-timesyncd /var/log/syslog | tail
Jun 22 14:13:09 meebox systemd-timesyncd[8333]: Timed out waiting for reply from 103.214.220.220:123 (au.pool.ntp.org).
Мои пакеты ntp блокировались корпоративным брандмауэром.
Чтобы использовать реальную реализацию NTP, вам необходимо установить и настроить ее, chrony
или, может быть ntpd
. Сделайте это, если вам требуется какой-либо мониторинг показателей времени. Приму хроны.
Добавить iburst
на ваш pool
или server
в вашей конфигурации, чтобы ускорить первые несколько пакетов. Для стабилизации еще может потребоваться пара минут, наберитесь терпения.
chronyc tracking
покажет текущее смещение. Имейте представление о ваших требованиях, точность в одну секунду может легко выдержать смещение в десятки миллисекунд.
chronyc makestep
немедленно выполнит текущую настройку. Обычно не требуется.
timesyncd
это клиент SNTP, который может устанавливать время, но не дисциплинировать его постепенно и непрерывно, а также фильтровать удаленный сервер NTP на основе качества. (Он также не может взаимодействовать с оборудованием времени или PTP, только протоколом NTP.) Немного лучше, чем повторный ntpdate
, я имею в виду не очень хорошие часы. Лично я заменяю его на большинстве серверов.
Единственный способ установить время с помощью timesyncd - вручную: timedatectl set-time "2019-01-15 00:40:16"
. У него нет надежных средств для дисциплины и контроля часов. Базовая статистика NTP через timedatectl timesync-status
- относительно новая вещь, я не думаю, что эта опция доступна в Red Hat 7 или Ubuntu 18.04.
systemd определяет "синхронизированный" как если бы NTP когда-либо использовался, чтобы сообщить Linux, что нужно настроить часы. В частности, если вызов дисциплины ядра, adjtimex () вернул без ошибок, а не начальное состояние. См. Исходный код systemd / src / basic / time-util.c.