Как команда даты взаимодействует с timedatectl?

Я имею два 16,04 серверов. timedatectl на обоих шоу машин, что сетевое время идет, и синхронизируется NTP. Оба используют UTC. Я затем назначил дату к случайному дню в следующем месяце с помощью date команда.

На первом сервере, последующих вызовах date покажите, что изменение времени действительно вступило в силу. timedatectl также показывает новую дату. Сетевое время все еще включено, но NTP, синхронизируемый = Нет.

На втором сервере, последующих вызовах date не показывайте новое время, и ни один не делает timedatectl. Сетевое время все еще включено, и синхронизируемый NTP - также.

Как это работает? Как это должно работать?

На обеих машинах я сделал ps -la | grep ntp видеть, управляло ли что-то еще временем, но ничто не обнаружилось.

Машина, которая принимает новую дату и не повторно синхронизирует, работает в виртуальном поле, но мне установили гостевые дополнения, таким образом, я предполагаю, что это было бы совместимо с синхронизацией NTP. Я не уверен в деталях другой машины - это - машина Laravel Forge.

2
задан 26 April 2018 в 02:18

2 ответа

Вы задаете много хороших вопросов, я постараюсь на них ответить, но я также предлагаю вам вовремя прочитать этот unix.stackexchange q / a на linux . Он должен предоставить вам более глубокую информацию, чем конкретные вопросы, которые вы задаете.

Некоторая справочная информация

timedatectl - это программа для взаимодействия с systemd-timesyncd, который является легким NTP-клиентом, предоставленным systemd . Запустите man timedatectl, чтобы получить простое для чтения описание программы. Например, Network time on: yes просто означает, что служба systemd-timesyncd включена. Вот и все.

Это также объясняет, почему вы не увидите, чтобы ps faux |grep ntp ничего не возвращало. Встроенный ntp-клиент называется systemd-timesyncd.

date - это программа для запроса и манипулирования системной датой и временем. Это время, когда ваша операционная система думает, что это сейчас. Если вы запустили это с аргументом -s, это позволит вам настроить системное время

О ваших образцах машин

machine-1 , который вы назвали машиной работает виртуалбокс. Это позволяет вам устанавливать системные часы в обычном режиме (и даже иметь виртуальные аппаратные часы, с которыми вы можете связываться, если хотите).

То, что вы описываете, звучит нормально, вы изменили время суток, и клиент ntp больше не будет правильно синхронизироваться. Вот почему команда ntpdate долгое время существовала в Ubuntu, это однократная команда для приведения часов в выравнивание и передачи их клиенту ntp. systemd-timesyncd теперь имеет эту встроенную функциональность, но работает только при запуске, а не постоянно.

машина-2 вы сказали, что это машина кузнечное дело . Я не уверен, что это конкретно. Если вы запустите sudo date -s '2018-04-18 12:00:00', это позволит вам это сделать? Что это говорит? Возможно, у вас нет возможности изменить системные часы на этом сервере. Например, это может быть контейнер (docker, lxd) какого-то типа.

0
ответ дан 2 December 2019 в 07:47

На втором сервере (где я не мог изменить дату), выходя sudo timedatectl set-ntp off решает проблему. Позже, когда я хочу повторно синхронизировать время, я выхожу sudo timedatectl set-ntp on и дайте ему несколько моментов. Это имеет смысл.

0
ответ дан 2 December 2019 в 07:47

Другие вопросы по тегам:

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