我正在一个由大约 10 台远程 Linux 计算机组成的网络上进行一些实验,这些计算机在地理上是分散的。
我怀疑其中一些有时钟偏差,但它们是短暂的(例如,每周一次或每月两次)。
我想知道是否存在一些工具可以检测和量化此类时钟偏差。还想知道时钟偏差是否是我所目睹的正确术语,或者是否可以称为时钟同步。
答案1
您是否试图使时钟与正确的时间同步,或者您是否试图在不同步的情况下确定实时时钟的实际准确度?
如果您只是希望时间正确,系统可以同步到整个时间服务器层次结构,并且它通常内置于操作系统中,尽管您通常可以指定时间服务器。此外,一个系统可以同步到时间服务器,然后运行自己的时间服务器以供其他系统同步。
我见过,甚至在过去使用过一些程序,它们不仅同步到标准时间,而且跟上本地计算机与上次同步的偏差。过去,当我们的互联网连接间歇性时,我使用过这个方法,因此该程序将通过使用预期漂移的历史来纠正时间。
通常,使用这两种方法中的任何一种,如果校正太多,则可能会假定存在错误并且根本不进行任何校正。
希望我没有完全理解你的观点。 :)
答案2
为此,请使用 NTP 守护进程。
定义许多要联系的独立 ntp 服务器(ntp.conf、服务器指令)。 3台服务器就够了,越多越好。
网络时间协议将筛选出“不良”时间源。查看ntpq -p
运行ntpd
几个小时后的输出。
您将看到已选择哪个主服务器,哪些服务器被视为“好”,哪些服务器被视为“坏”。输出还包含抖动和延迟(抵消)。这些可能就是您所追求的价值观......
答案3
crony 实用程序有一个漂移文件。看:http://chrony.tuxfamily.org/manual.html#Configuration-options-overview
我不知道该文件的格式,因为我自己还没有安装它。它确实有一个命令来查看漂移信息:chronyc sourcestats -v
我计划首先在我的虚拟机上安装 crony。
这个网站看起来很有帮助:http://www.markus-gattol.name/ws/time.html
答案4
不管怎样,昨天我需要亲自检查两个 Linux 系统之间的偏差程度。在寻找工具之前,我使用了这种不科学的方法,它为我的目的提供了足够好的结果(比较两个系统的日志输出的时间戳)。
- 在每个系统上启动 Putty 会话并将它们并排对齐
在两个系统上运行以下命令:
$ while true; do date +%H:%M:%S.%N; done
- 截取屏幕截图并比较每个窗口上的最后条目。
可能对紧要关头的人有用!