Nathan Osman Asked: 2010-07-29 16:01:08 +0800 CST2010-07-29 16:01:08 +0800 CST 2010-07-29 16:01:08 +0800 CST 如何设置 Ubuntu 以将我的时钟与时间服务器同步? 772 我希望 Ubuntu 在启动时自动将我的系统时钟与时间服务器同步。 但是,我的 PC 直到我登录后才连接到 Internet(加上 5 - 10 秒的良好测量)。 我该如何设置它来做到这一点? ntp 4 个回答 Voted Best Answer David Z 2010-07-29T16:57:38+08:002010-07-29T16:57:38+08:00 通常建议运行使用 NTP(网络时间协议)的服务来定期将您的计算机时钟与服务器同步。在最近的 Ubuntu 版本中(至少从 18.10 开始,或者可能更早,但我不确定),这是systemd-timesyncd由默认安装和启用的服务来处理的,所以不需要做任何特别的事情。如果服务可用且处于活动状态,则正在运行 timedatectl status 应该告诉你。 对于旧版本的 Ubuntu,您可以按照说明设置 NTP 守护程序。有多种选择,但“标准”选项在包装中ntp。根据链接页面上的说明, sudo apt-get install ntp 将设置所有内容以与 Ubuntu 的 NTP 服务器同步。 如果您真的只想在启动时同步一次时间并且不再同步(直到下一次启动),请参见例如mfisch 的答案。但同样,不建议这样做,而且很少有任何理由这样做是有益的。 Little Jawa 2010-07-30T00:46:11+08:002010-07-30T00:46:11+08:00 如果您转到“系统->管理->时间和日期”,您将获得一个 GUI 来设置日期/时间。 提供了使用时间服务器的选项。如果您检查它并且没有安装NTP,它会询问您是否要安装它。只需单击“是”,然后让它完成它的工作:) mfisch 2010-07-29T16:57:33+08:002010-07-29T16:57:33+08:00 您可以使用at和ntpdate执行此操作。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 那应该做你想做的事。您可以将at使用的延迟更改为 5 分钟、10 分钟等。 编辑:我刚刚意识到你需要 root 才能运行ntpdate。您需要在我提到的 update_time.sh 脚本上设置 SUID 位。您可以通过从命令运行它来做到这一点(只需要运行一次): sudo chmod 4711 update_time.sh sudo chown root update_time.sh JBaczuk 2018-10-19T05:55:21+08:002018-10-19T05:55:21+08:00 由于 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 您可能还需要激活 sudo timedatectl set-ntp on 更新:如果上述方法不起作用,另一种方法是设置一个 cron 作业来运行$ chronyd -q
通常建议运行使用 NTP(网络时间协议)的服务来定期将您的计算机时钟与服务器同步。在最近的 Ubuntu 版本中(至少从 18.10 开始,或者可能更早,但我不确定),这是
systemd-timesyncd
由默认安装和启用的服务来处理的,所以不需要做任何特别的事情。如果服务可用且处于活动状态,则正在运行应该告诉你。
对于旧版本的 Ubuntu,您可以按照说明设置 NTP 守护程序。有多种选择,但“标准”选项在包装中
ntp
。根据链接页面上的说明,将设置所有内容以与 Ubuntu 的 NTP 服务器同步。
如果您真的只想在启动时同步一次时间并且不再同步(直到下一次启动),请参见例如mfisch 的答案。但同样,不建议这样做,而且很少有任何理由这样做是有益的。
如果您转到“系统->管理->时间和日期”,您将获得一个 GUI 来设置日期/时间。
提供了使用时间服务器的选项。如果您检查它并且没有安装NTP,它会询问您是否要安装它。只需单击“是”,然后让它完成它的工作:)
您可以使用at和ntpdate执行此操作。at 可能已经安装,但ntpdate可能尚未安装。(apt-get 安装 ntpdate)。
首先创建一个运行 ntpdate 的小脚本,我们称之为 update_time.sh。
在您的 .bash_login 文件(您可能需要创建)中添加:
那应该做你想做的事。您可以将at使用的延迟更改为 5 分钟、10 分钟等。
编辑:我刚刚意识到你需要 root 才能运行
ntpdate
。您需要在我提到的 update_time.sh 脚本上设置 SUID 位。您可以通过从命令运行它来做到这一点(只需要运行一次):由于 Ubuntu 16.04 timedatectl / timesyncd(它们是 systemd 的一部分)替换了大部分 ntpdate / ntp。请参阅时间同步。
您可能需要使用以下方法激活时间同步:
$ sudo timedatectl set-ntp on
如果你想使用chrony:
如果您需要一次性同步,请使用:
$ chronyd -q
如果您需要一次性时间检查,而不设置时间,请使用:
$ chronyd -Q
对于连续同步,推荐的解决方案是chrony:
您可能还需要激活
sudo timedatectl set-ntp on
更新:如果上述方法不起作用,另一种方法是设置一个 cron 作业来运行
$ chronyd -q