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

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

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

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

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

 sudo apt-get install ntp 

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

EDIT : Я пропустил «при запуске». Обычно рекомендуется использовать ntpd для непрерывной синхронизации между вашей системой и сервером, но если вы действительно хотите только синхронизировать один раз, ответ mfisch кажется тем, что вы ищете.

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

Опция предоставляется для использования серверов времени. Если вы проверите его и NTP не будет установлен, он спросит, хотите ли вы его установить. Просто нажмите «Да», и пусть это сделает свою работу 🙂

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

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

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

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

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

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

EDIT: Я просто понял, что вам нужно быть root для запуска ntpdate . Вам нужно будет установить бит SUID в скрипте update_time.sh, о котором я упоминал. Вы можете сделать это, выполнив это из команды (нужно только запустить один раз):

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