如何从命令行将系统时间重置为网络时间?

如何从命令行将系统时间重置为网络时间?

如何在 12.04 LTS 中从命令行将系统时间重置为网络时间?这是一台无头机器,因此我无法访问 GUI 选项。

答案1

ntpdate 已弃用

ntpdate已被弃用,请在此处阅读更多信息:http://support.ntp.org/bin/view/Dev/DeprecatingNtpdate

对于一次性方法

  • 使用以下命令安装 ntp 包sudo apt-get install ntp
  • 在您的服务器中设置/etc/ntp.conf
  • 并用于sudo ntpd -q -g -x -n一次性同步。

这也适用于长达 68 年的偏差。

或者,进入“系统设置”→“时间和日期”(我不确定这是否是正确的翻译)以启用网络时间。请注意,您不能在此指定服务器。

答案2

编辑 ntpdate 现已弃用,请参阅@Jan 回答以获得更安全的解决方案。

首先,你必须安装 NTP 服务器(如果你还没有的话),所以

sudo apt-get install ntp

然后,检查 ntp 是否正在运行

sudo service ntp status

如果没有运行,你可以直接输入

sudo service ntp start

然后更新时间

sudo ntpdate -u time.nist.gov

time.nist.gov当然不是唯一的。这里这里有一个时间服务器列表,你可以选择使用。来源这里

答案3

通过 ssh 登录并输入

ntpdate 0.europe.pool.ntp.org

其中 0.europe.pool.ntp.org 是欧洲的时间服务器 - 如果需要,您可以将其指向网络上的本地服务器。如果您需要安装 ntp,请使用

sudo apt-get install ntp

您可以将脚本放入 cron 作业中来调用该命令,以实现自动化。

答案4

这是我使用的脚本。如果发行版未附带 ntp 服务,请安装它。如果 ntpdate 在某个时候失效了,请在下方评论。

#!/bin/bash

echo `sudo systemctl stop ntp.service` > /dev/null
echo `ntpdate -s time.nist.gov` > /dev/null
echo `sudo systemctl start ntp.service` > /dev/null

相关内容