Как настроить 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