AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 792705
Accepted
BCA
BCA
Asked: 2025-03-19 22:24:33 +0800 CST2025-03-19 22:24:33 +0800 CST 2025-03-19 22:24:33 +0800 CST

如何证明 NTP 时间同步正在定期检查

  • 772

如何证明systemd-timesyncd正在定期轮询 NTP 服务器以确保系统时钟保持“同步”?

我知道我可以通过运行来检查同步状态是否为是timedatectl,而且它确实告诉我“是”,但那难道不是几个月前的陈旧状态吗?我没有看到任何证据表明任何软件组件实际上正在定期联系 NTP 服务器池进行实际检查。

根据我的理解,使用默认配置PollIntervalMaxSec2048,它最多每 34 分钟应与 NTP 进行一次时钟比较。它应该这样工作吗?

如果我运行,journalctl -u systemd-timesyncd我只会看到重新启动或 s 的同步事件证据apt upgrade。事实上,几周过去了,却没有任何时钟同步日志条目。

对于我的时间敏感型应用程序,我担心如果几周/几个月过去而没有任何 NTP 检查,我的系统时钟可能会出现很大偏差。我希望它每天检查一次并证明确实如此。

ntp
  • 3 3 个回答
  • 83 Views

3 个回答

  • Voted
  1. telcoM
    2025-03-20T06:09:07+08:002025-03-20T06:09:07+08:00

    对于我的时间敏感型应用程序,我担心如果数周/数月过去而没有任何 NTP 检查,我的系统时钟可能会发生显着漂移。

    这可能systemd-timesyncd不是最适合您的 NTP 客户端选择。您可能需要编辑您的问题以澄清时间敏感对于您的特定应用程序意味着什么:

    • 您是否更关心是否符合官方标准时间,还是更关心运行应用程序组件的所有系统的时钟是否相互匹配?
    • 您需要什么样的精度?HH:MM:SS 时间戳对您来说足够准确吗?还是您需要精确到毫秒或微秒的计时?

    最新版本的systemd-timesyncd手册页内容如下:

    该systemd-timesyncd服务仅实现 SNTP。此简约服务将针对较大的偏移量调整系统时钟,或针对较小的增量缓慢调整系统时钟。需要完整 NTP 支持(且 SNTP 不够用)的复杂用例不在 的范围内systemd-timesyncd。

    根据我的经验,大多数时间敏感的应用程序要么需要详细了解何时以及如何发生大步转换,要么需要完全保证在应用程序运行时只会进行逐步调整,而不会进行步进转换。我还没有读过源代码systemd-timesyncd(目前),但我看不出有任何方法可以systemd-timesyncd保证它不会进行步进转换。

    即使systemd-timesyncd有健全性检查来防止在服务运行时将系统时间倒退,我还是可以看到与自动更新可能存在不良交互:如果systemd-timesyncd通过自动更新重新启动(其本身或其依赖的某些库,例如glibc),它可能会在重新启动服务时进行步骤转换systemd-timesyncd,甚至可能“时间倒退”。例如,对于包含时间敏感数据的数据库,这将是纯粹的毒药。

    在现代无处不在的互联网连接环境中,随着系统管理员工作量和安全合规性要求的增加,没有自动更新正成为一种不切实际的解决方案。因此,系统管理员应尽可能将系统配置为能够容忍自动化 - 对于时间敏感的应用程序,这意味着,除其他事项外,要注意确保 NTP 同步服务可重新启动/重新配置,而不会对系统的“有效负载”应用程序造成问题。在我看来,这systemd-timesyncd可能不符合该标准。


    /var/lib/systemd/timesync/clockD'Arcy Nader 已经提到的和文件的时间戳/run/systemd/timesync/synchronized似乎是您可以进行的最佳每日检查。

    如果想要实时监控,也可以使用timedatectl timesync-status --monitor239以上版本的命令。

    • 2
  2. ron
    2025-03-19T23:26:32+08:002025-03-19T23:26:32+08:00
    chronyc sources -v
    
      .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
     / .- Source state '*' = current best, '+' = combined, '-' = not combined,
    | /             'x' = may be in error, '~' = too variable, '?' = unusable.
    ||                                                 .- xxxx [ yyyy ] +/- zzzz
    ||      Reachability register (octal) -.           |  xxxx = adjusted offset,
    ||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
    ||                                \     |          |  zzzz = estimated error.
    ||                                 |    |           \
    MS Name/IP address         Stratum Poll Reach LastRx Last sample
    ===============================================================================
    ^* somewhere.com             4  10   377   365   +419us[ +742us] +/-  211ms
    

    注意^*当前最佳的含义;如果您在那里^?,那么它就没有工作,也无法看到时间服务器;首先尝试停止任何防火墙,例如,service firewalld stop然后等待 1 分钟,然后执行,service chronyd restart然后等待 2 分钟,然后重新检查chronyc sources。如果您快速输入并在 5 秒内检查所有这些,您将继续看到^?。您首先必须确保它正在成功地与时间服务器通信。然后...

    chronyc tracking
    
    Reference ID    : abc123 (somewhere.com)
    Stratum         : 5
    Ref time (UTC)  : Wed Mar 19 15:15:21 2025
    System time     : 0.000113727 seconds fast of NTP time
    Last offset     : +0.000323116 seconds
    RMS offset      : 0.000678079 seconds
    Frequency       : 12.582 ppm fast
    Residual freq   : +0.009 ppm
    Skew            : 0.151 ppm
    Root delay      : 0.021262813 seconds
    Root dispersion : 0.201387167 seconds
    Update interval : 1035.9 seconds           <---- *** here ***
    Leap status     : Normal
    

    如果它不起作用,跟踪输出中的内容将全部为零。此跟踪输出应该有意义。

    有/etc/chrony.conf这两个未注释的和service chronyd restart

    # Specify directory for log files.
    logdir /var/log/chrony
    
    # Select which information is logged.
    log measurements statistics tracking
    

    假设你的意思是chonyd,并且不是ntpd那么好...... chronyd 和 ntpd 之间的区别

    • 1
  3. Best Answer
    D'Arcy Nader
    2025-03-20T02:00:10+08:002025-03-20T02:00:10+08:00

    引自man systemd-timesyncd.service

       /var/lib/systemd/timesync/clock
           The modification time ("mtime") of this file is updated on
           each successful NTP synchronization or after each
           SaveIntervalSec= time interval, as specified in
           timesyncd.conf(5).
    
           If present, the modification time of this file is used for the
           epoch by systemd(1) and systemd-timesyncd.service.
    
           Added in version 219.
    
       /run/systemd/timesync/synchronized
           A file that is touched on each successful synchronization to
           assist systemd-time-wait-sync and other applications in
           detecting synchronization to an accurate reference clock.
    
           Added in version 239.
    
    • 1

相关问题

  • 一次查询与 NTP 服务器同步时间

  • ntpstat 有效,但 ntpq 无效

  • 为 CentOS 7 寻找一个简单的 NTP 设置

  • 如何使用我的本地时间作为 `ntpd` 的唯一参考?

  • 系统时间在 Linux 机器上由于某种未知原因而自动更改

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve