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


23

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

但是,直到登录后,我的PC才连接到Internet(再加上5到10秒的时间)。

我该如何设置呢?


2
这里已经有出色的答案,可以解释如何安装ntpd,从而使您的计算机不断与互联网时间服务器保持同步,但是我只想补充一下,默认情况下,只要您的网络接口出现,Ubuntu就会与ntp.ubuntu.com同步时间。 “向上”(例如,当您启动计算机时)。由于您连接到互联网的方式,这种情况似乎没有发生,但是其他读者不应假定Ubuntu在未安装ntpd的情况下不会同步时间。

这是一个说明如何将其设置为time.nist.gov的工具: askubuntu.com/questions/972799/…– SDsolar
2017年

Answers:


32

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

sudo apt-get install ntp

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

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


3
我认为,总的来说,让ntpd始终运行并在不在线时使其无法连接会更好,这绝不是有害的。话虽如此,我的方法也应该有效;)
mfisch 2010年

我可以持续运行。
内森·奥斯曼

1
乔治,就那样做。我希望回答您的“真实”问题,因为世界上最令人讨厌的事情是问这样的问题,并且所有答复都是“您为什么要这样做?”
mfisch

对于Ubuntu 18.04,更长的安装ntpd的建议适用。默认情况下,systemd-timesyncd.service将同步时间。
恩斯特克

9

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

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


忘记了“启动”的事情。NTP会定期执行其工作,这意味着您应该在在线时就保持同步...但是,唯一要确保的方法是使用mfisch提供的某种脚本。现在说实话:一旦同步,您的计算机就几乎不可能被时钟弄乱。因此,如果您使用默认的时间同步,并使其在后台进行,那么大部分时间都应该很好,而无需执行任何其他操作。
小贾瓦

它不是标有“时间和日期”吗?
Firefeather 2010年

@Firefeather:很可能是这样。我没有英文界面,所以我看不出来;)
Little Jawa

啊,愚蠢的我,忘记了国际化。我的使用中的系统将其标记为“时间和日期”。
Firefeather 2010年

6

您可以使用atntpdate进行此操作。at可能已经安装,但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。您需要在我提到的update_time.sh脚本上设置SUID位。您可以通过在命令中运行此命令来做到这一点(只需运行一次):

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

1
iirc您不能在.sh脚本上设置suid。
Broam 2010年

那你可以直接在ntpdate上做suid吗?那可能会完成同样的事情。
mfisch 2010年

2
为什么要使用at?如果要自动运行ntpdate,为什么不安装该ntp服务呢?
Reinier Post

1
注意:ntpdate在Ubuntu(16.04+)上默认不再安装,并且不推荐使用timedatectl。timedatectl控制systemd的时间同步服务,默认情况下用于时间同步。
科里·戈德堡

0

从Ubuntu 16.04开始,timedatectl / timesyncd(是systemd的一部分)替换了大多数ntpdate / ntp。请参阅时间同步

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

$ sudo timedatectl set-ntp on

如果要使用chrony:

  • 如果您需要一键式同步,请使用: $ chronyd -q

  • 如果您需要一次检查时间,而没有设置时间,请使用: $ chronyd -Q

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

年代(d)

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

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

$ sudo apt install chrony

您可能还需要激活

须藤timedatectl set-ntp上

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.