Как настроить Ubuntu для синхронизации моих часов с сервером времени?

Я хотел бы, чтобы Ubuntu автоматически синхронизировал мои системные часы с сервером времени при запуске.

Тем не менее, мой компьютер не подключен к Интернету, пока я не вошел в систему (плюс 5 - 10 секунд для хорошей меры).

Как я могу настроить это сделать это?

4 ответа

Решение

Это сделано с NTP, для которого имеются инструкции. По сути, вам нужно установить демон NTP. Кажется, есть несколько вариантов, но "стандартный" есть в упаковке ntp, Согласно инструкциям на связанной странице,

sudo apt-get install ntp

получит все настройки для синхронизации с NTP-сервером Ubuntu.

РЕДАКТИРОВАТЬ: я пропустил "при запуске". Как правило, рекомендуется использовать ntpd для непрерывной синхронизации между вашей системой и сервером, но если вы действительно хотите синхронизироваться только один раз, ответ mfisch, похоже, будет именно тем, что вы ищете.

Если вы перейдете в "Система-> Администрирование-> Время и дата", вы получите графический интерфейс для установки даты / времени.

Опция предоставляется для использования серверов времени. Если вы проверите его и NTP не установлен, он спросит, хотите ли вы установить его. Просто нажмите "да", и пусть он сделает свое дело:)

Вы можете сделать это используя at и ntpdate. Возможно, он уже установлен, но ntpdate может и не быть. (apt-get установить ntpdate).

Сначала создайте небольшой скрипт, который запускает ntpdate, назовем его update_time.sh.

#!/bin/bash
ntpdate pool.ntp.org

В вашем файле.bash_login (который вам может понадобиться создать) добавьте:

at -f ~/update_time.sh now + 1 minute

Это должно делать то, что вы хотите. Вы можете изменить задержку на 5 минут, 10 минут и т. Д.

РЕДАКТИРОВАТЬ: я только что понял, что вам нужно быть пользователем root для запуска ntpdate, Вам нужно будет установить бит SUID в скрипте update_time.sh, о котором я упоминал. Вы можете сделать это, запустив это из команды (нужно запустить только один раз):

sudo chmod 4711 update_time.sh
sudo chown root update_time.sh

Начиная с Ubuntu 16.04 timedatectl / timesyncd (которые являются частью systemd) заменяют большую часть ntpdate / ntp. См. Синхронизация времени.

Вам может потребоваться активировать синхронизацию времени, используя:

$ sudo timedatectl set-ntp on

Если вы хотите использовать Chrony:

  • Если вам требуется синхронизация по одному кадру: $ chronyd -q

  • Если вам требуется проверка времени одним выстрелом, без установки времени: $ chronyd -Q

  • Для непрерывной синхронизации рекомендуемое решение является хроническим:

Chrony(д)

Демон NTP chronyd вычисляет смещение и смещение системных часов и непрерывно их корректирует, поэтому нет больших исправлений, которые могли бы привести к несогласованным журналам, например. Стоимость - небольшая вычислительная мощность и память, но для современного сервера это обычно незначительно. Монтаж

Чтобы установить Chrony, в терминале введите:

$ sudo apt install chrony

Вам также может понадобиться активировать

sudo timedatectl set-ntp on

Обновление. Другой способ, если вышеприведенное не работает, - установить задание cron для запуска. $ chronyd -q

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