如何通过命令行更改 ubuntu 的服务器日期和时间?

如何通过命令行更改 ubuntu 的服务器日期和时间?

Ubuntu 服务器的当前日期和时间与时区日期和时间不同。我尝试使用:

sudo date "30 Sep 2015 4:43:42"

去改变它但它并没有改变日期和时间,只是在终端上打印了我改变的日期和时间,但是当我执行时:

sudo hwclock --show

日期和时间仍是旧的。

更改 Ubuntu Server 日期和时间的正确方法是什么?

答案1

您可以设置系统日期使用以下命令:

sudo date --set="2015-09-30 10:05:59.990"

然后使用时date,它应该可以正确显示。

现在你还应该设置硬件时钟在系统的 BIOS 中,该设置在重启后仍然有效(启动期间,系统时间设置为硬件时钟的值)。使用以下命令执行此操作hwclock

sudo hwclock --systohc

这将获取系统时钟 (sys) 值并设置硬件时钟 (hc)。使用命令检查hwclockhwclockdate现在应该显示相同的日期和时间。


要设置您的时区,你可以使用此命令:

sudo dpkg-reconfigure tzdata

顺便提一句:如果你使用这台机器作为服务器,我强烈建议使用 NTP 客户端来通过网络同步时间。这样您就可以保证所有服务器都设置了完全相同的时间。这将在机器运行时同步时间。如果您的应用程序依赖于服务器上的同步时间,我建议使用 NTP-Daemon。它在后台运行的时间越长,时间就越精确。

答案2

  1. 搜索您的时区
timedatectl list-timezones
  1. 设置时区
sudo timedatectl set-timezone America/Toronto
  1. 使能够timesyncd
sudo timedatectl set-ntp on

这样,时间就应该设置并同步。

您可以在本教程中了解更多信息:https://www.digitalocean.com/community/tutorials/how-to-set-up-time-synchronization-on-ubuntu-18-04

答案3

我不喜欢手动设置系统时间。因此,为了解决这个问题,我不得不结合两个不同的答案。
要修复系统时间,您必须使用此代码:

sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"

正如本文所述回答
然后使用以下命令将硬件时钟与系统时钟同步

sudo hwclock --systohc

正如本线程中@chaos 所给出的。

答案4

我在 Amazon AWS 上使用基于 Ubuntu 的服务器。所有 SUDO DATE 答案对我来说都不起作用。SUDO DATE 返回新日期作为输出,但后续 DATE 调用仍显示旧日期。此外,HWCLOCK 什么也没做,只是返回了一个错误。

我的答案是:

sudo timedatectl set-ntp false

sudo timedatectl set-time "date-time-string"

相关内容