RedHat 服务器每分钟更新一次时间

Mor*_*Cat 3 rhel ntp

RedHat release 7.3 这是一个开发机器,所以我不知道它的安装历史。注意到它没有很好地保持时间同步,尽管 ntpd 正在运行。

我的调查显示 ntp 工作正常,但还有另一个服务正在运行,它也在更新时间 - 不幸的是,该服务快 12 分钟!

例如,我禁用 ntpd 并运行 ntpdate。计算机时间被重置。

#timedatectl status

      Local time: Tue 2016-11-22 13:27:56 GMT
  Universal time: Tue 2016-11-22 13:27:56 UTC
        RTC time: Tue 2016-11-22 13:27:17
       Time zone: Europe/London (GMT, +0000)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: no
Run Code Online (Sandbox Code Playgroud)

但在几分钟内,时间又回到了 12 分钟(与 RTC 相比)

#timedatectl status

      Local time: Tue 2016-11-22 13:41:09 GMT
  Universal time: Tue 2016-11-22 13:41:09 UTC
        RTC time: Tue 2016-11-22 13:28:49
       Time zone: Europe/London (GMT, +0000)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: no
Run Code Online (Sandbox Code Playgroud)

我在 /var/log/messages 中找到了一些相关的消息

*Nov 22 14:26:00 development systemd: Time has been changed
 Nov 22 14:38:27 development systemd: Time has been changed
*Nov 22 14:27:00 development systemd: Time has been changed
 Nov 22 14:39:27 development systemd: Time has been changed
*Nov 22 14:27:00 development systemd: Time has been changed
 Nov 22 14:40:27 development systemd: Time has been changed
*Nov 22 14:39:00 development systemd: Time has been changed
 Nov 22 14:42:27 development systemd: Time has been changed
Run Code Online (Sandbox Code Playgroud)

标记为“*”的那些是我在date 11221426.

您可以看到某处将时间重置为 12 分钟。请注意,时间始终为“27 秒”,因此它似乎每分钟运行一次,尽管这会缓慢漂移(当前运行为 28 秒!)。

我花了很长时间禁用服务,但我一直无法找到迫使我的机器在未来 12 分钟的服务。ntpd 被禁用,但我知道一个同步到正确的时间。

请任何人都可以建议任何其他时间更新服务,我可以检查它们是否正在运行。

附加信息

正如答案中所建议的那样,我查看了 chronyd。它没有在我的机器上运行,即使我让它运行,它也会将机器设置为正确的时间,而不是快 12 分钟。

chronyd.service - NTP client/server
Loaded: loaded 
   (/usr/lib/systemd/system/chronyd.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Run Code Online (Sandbox Code Playgroud)

JRF*_*son 5

Red Hat 版本 7 引入了chronyd用于系统时钟管理的守护进程。它可以用来代替ntpd守护进程。 chronyd适用于可能间歇性断开网络连接的系统。chronyd可以更快地调整系统时间ntpd

要查看此守护程序是否正在运行,请执行以下操作:

# systemctl status chronyd
Run Code Online (Sandbox Code Playgroud)

要确定守护程序的运行方式:

# chronyc tracking
# chronyc sources
Run Code Online (Sandbox Code Playgroud)

配置通过/etc/chrony.conf.