我希望Ubuntu在启动时自动将我的系统时钟与时间服务器同步。
但是,在我登录之前,我的电脑没有连接到互联网(加上5到10秒的时间)。
如何设置它来执行此操作?
这是通过NTP完成的,其中 说明 可用。基本上,您需要安装NTP守护程序。似乎有几种选择,但“标准”选项在ntp
包中。根据链接页面上的说明,
Sudo apt-get install ntp
将设置所有内容以与Ubuntu的NTP服务器同步。
EDIT:我错过了“启动时”。通常建议使用ntpd来获得系统和服务器之间的连续同步,但如果你真的只想同步一次,那么mfisch的答案似乎就是你要找的。
如果您转到“系统 - >管理 - >时间和日期”,您将获得一个GUI来设置日期/时间。
提供了使用时间服务器的选项。如果您检查它并且未安装NTP,它将询问您是否要安装它。只需单击“是”,让它完成它的工作:)
你可以使用at和ntpdate来做到这一点。 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
由于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