如何在 16.04 中强制立即进行时钟/时间同步/ntp 更新?

如何在 16.04 中强制立即进行时钟/时间同步/ntp 更新?

看起来就像LTS 服务器指南和和社区维基可能尚未针对 16.04 进行更新。社区 wiki 页面中的图片显示了“立即同步”按钮,但我在 16.04 时间和日期设置中找不到任何这样的按钮。我的时间和日期设置设置为自动同步。默认情况下未安装软件包ntpntpupdate。我在 syslog 中看到的唯一提及 NTP 的条目来自systemd-timedated

运行sudo apt install ntp; timedatectl set-ntp true似乎暂时解决了问题,但我想知道在 16.04 中执行此操作的“正确”方法是什么。

或许:

sudo ntpd -qg

答案1

使用 tlsdate:

sudo apt-get install tlsdate
sudo tlsdate -H mail.google.com

使其自动

制作一个脚本(例如~/.update_time.sh):

sudo gedit ~/.update_time.sh

添加以下几行:

#!/bin/bash
tlsdate -H mail.google.com

保存并关闭文件。修改所有权:

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

编辑〜/ .bash_profile:

sudo gedit ~/.bash_profile

并添加以下内容:

at -f ~/update_time.sh now + 1 minute

保存并关闭文件。

“现在 + 1 分钟”是脚本运行的时间延迟(以确保您已连接到互联网)。您可能需要在以下位置安装:

sudo apt-get install at

警告:以下使用已弃用的 ntpdate 包

我跟着这个答案这对我有用:

sudo apt-get install ntpdate
sudo ntpdate pool.ntp.org

使其自动

制作一个脚本(例如~/.update_time.sh):

sudo gedit ~/.update_time.sh

添加以下几行:

#!/bin/bash
ntpdate pool.ntp.org

保存并关闭文件。修改所有权:

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

编辑〜/ .bash_profile:

sudo gedit ~/.bash_profile

并添加以下内容:

at -f ~/update_time.sh now + 1 minute

保存并关闭文件。

“现在 + 1 分钟”是脚本运行的时间延迟(以确保您已连接到互联网)。您可能需要在以下位置安装:

sudo apt-get install at

答案2

我不得不对 tlsdate 使用“-s”选项,因为 catch-22 会导致“tls”ssl 连接无法在该主机上的错误日期下工作,这是因为对于此处时间配置错误的主机而言,google 的 ssl 证书的日期看起来像是未来的日期。

    sudo tlsdate -s -H mail.google.com

相关内容