it-swarm.cn

如何设置Ubuntu以使我的时钟与时间服务器同步?

我希望Ubuntu在启动时自动将我的系统时钟与时间服务器同步。

但是,在我登录之前,我的电脑没有连接到互联网(加上5到10秒的时间)。

如何设置它来执行此操作?

23
Nathan Osman

这是通过NTP完成的,其中 说明 可用。基本上,您需要安装NTP守护程序。似乎有几种选择,但“标准”选项在ntp包中。根据链接页面上的说明,

Sudo apt-get install ntp

将设置所有内容以与Ubuntu的NTP服务器同步。

EDIT:我错过了“启动时”。通常建议使用ntpd来获得系统和服务器之间的连续同步,但如果你真的只想同步一次,那么mfisch的答案似乎就是你要找的。

32
David Z

如果您转到“系统 - >管理 - >时间和日期”,您将获得一个GUI来设置日期/时间。

提供了使用时间服务器的选项。如果您检查它并且未安装NTP,它将询问您是否要安装它。只需单击“是”,让它完成它的工作:)

9
Little Jawa

你可以使用atntpdate来做到这一点。 at可能已经安装了,但是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

那应该做你想要的。您可以将at使用的延迟更改为5分钟,10分钟等。

编辑:我刚刚意识到你需要root才能运行ntpdate。您需要在我提到的update_time.sh脚本上设置SUID位。你可以通过从命令运行它来做到这一点(只需要运行一次):

Sudo chmod 4711 update_time.sh
Sudo chown root update_time.sh
6
mfisch

由于Ubuntu 16.04 timedatectl/timesyncd(属于systemd的一部分)取代了大部分的ntpdate/ntp。见 时间同步

您可能需要使用以下命令激活时间同步:

$ Sudo timedatectl set-ntp on

如果你想使用chrony:

  • 如果您需要一次性同步使用:$ chronyd -q

  • 如果您需要一次性检查,而无需设置时间:$ chronyd -Q

  • 对于连续同步,推荐的解决方案是chrony:

chrony(d)

NTP守护程序chronyd计算系统时钟的漂移和偏移量并不断调整它,因此没有大的修正可能导致例如日志不一致。成本是一点处理能力和内存,但对于现代服务器,这通常可以忽略不计。安装

要安装chrony,请从终端提示输入:

$ Sudo apt install chrony

您可能还需要激活

Sudo timedatectl set-ntp on

更新:如果上述方法不起作用的另一种方法是设置一个cron作业来运行$ chronyd -q

0
JBaczuk