问题标签 [ntp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - Nagios check_ntp_peer 不工作
我正在运行通过 Nagios 监控的虚拟化 (vmware) debian (2.6.26-2-686)。最后,我收到以下严重错误(由 _check_ntp_peer_ 脚本报告):
它引起了我的注意
有什么线索吗?这是ntp.conf
那么,您知道问题可能是什么吗?
提前致谢,
威尔默
unix - 使用 ntpd 可能会弄乱 cron 作业吗?
我的系统有很多时间漂移,几周后它可以提前大约 5 分钟。
为了解决这个问题,我安装了 ntp,它可以帮助修复漂移,当然偶尔也会将时间同步到 ntp 服务器。
假设我有一个像备份文件这样的 cron 工作。以下情况可能吗?
如果 cron 作业复制大文件,第二次运行可能会尝试覆盖第一个作业未完成写入的文件。
谢谢!
cloud - 如何跨多个节点在云(AWS、heroku 等)中建立时钟同步?
我想在云中运行一个大型节点集群(AWS、Heroku,或者可能是自我管理的 VMS),其时钟必须与预定义的容差同步。我正在寻找可能 200 毫秒的容差。这意味着如果我有 250 个节点,那么 250 个节点之间的最大时钟差不应超过 200 毫秒。我并不真正关心与世界相关的实际日期/时间。解决方案必须是容错的,并且不应该依赖于任何一个系统的时钟的准确性——事实上,很可能没有一个时钟会非常准确。
如果由于任何原因确定时钟同步对于任何特定节点不可靠,则要求足够强,由于时钟不同步,我宁愿从集群中删除一个节点 - 所以对于任何可疑的故障,我会希望能够对该节点执行某种类型的受控关闭。
我很想使用 NTP 之类的东西,但根据 NTP已知问题 twiki:
NTP 并非设计为在虚拟机内部运行。它需要一个高分辨率的系统时钟,对时钟中断的响应时间具有很高的精度。没有已知的虚拟机能够满足这些要求。
尽管同一个 twiki 然后描述了解决这种情况的各种方法(例如在主机操作系统上运行 ntp),但我不相信我有能力使用 AWS 或在 horoku 上修改环境以遵守解决方法。
即使我没有在 VM 中运行,一位具有多年运行 ntp 经验的值得信赖的运营经理告诉我,由于本地时钟漂移不时,ntp 可以并且将会放弃同步(或明显弄错时间)。它不会经常发生,但确实会发生,并且随着您增加机器,您会增加发生这种情况的机会。AFAIK,检测你离你有多远需要停止 ntpd,运行查询模式命令,然后重新启动它,并且可能需要很长时间才能得到答案。
总结一下——我需要一个时钟同步,其主要目标如下:
- 在操作控制受限的虚拟机中运行良好(即:“云服务提供商”)
- 集群中所有参与者之间的时间容差约为 200 毫秒
- 能够检测坏节点并以积极的方式对其做出反应
- 容错(无单点故障)
- 可扩展(当您添加更多节点时,事情不会倒下——绝对避免 n^2)
- 可支持数百个节点
- 任何节点都不应被认为具有优于任何其他节点的时间概念
- 整个集群漂移(在合理范围内)是可以的——只要它一致漂移
从描述来看,伯克利算法似乎是正确的选择,但它已经实现了吗?
很高兴拥有:
- 最少的配置(节点自动注册参与)——对于启动新节点很重要
- 报告参与时钟同步的节点以及相对时间偏移量的 HTML 仪表板或(REST?)API
- 漂亮的图表?
vb.net - 使用 VB.NET 查询 NTP 服务器
正如标题所描述的,我正在寻找一种从“VB.NET”的 NTP/SNTP 服务器查询 UTC 时间的方法。我为 VB.NET 找到的用于此类任务的唯一库似乎需要大量不同形式的货币。
有任何建议、意见、方法或链接吗?
谢谢!
embedded - 从嵌入式设备上的 NTP 时间戳计算 DateTime
我有一个非常有限的环境,没有标准的 linux/unix 日期/时间 API,并且必须与NTP
服务器同步时钟。我可以通过沟通UDP
并得到NTP
回复。现在我需要NTP timestamp
自己完全转换为设备日期/时间。
我发现了几个 ntp 实现(qntp
, c#
, java
),但它们都使用系统范围的函数将NTP
时间戳转换为相应的 DateTime 实现。
任何关于如何转换的建议或任何我可以阅读有关这种转换的链接将不胜感激。
time - 改变原子钟秒定义以补偿闰秒的效果
国际电信联盟 (ITU)是一个标准化世界协调时间 (UTC)的机构。出于各种原因,国际电联一直在讨论取消所谓的闰秒。增加了闰秒以适应地球自转的缓慢以及由此产生的地球时间与天文时间之间的差异。根据目前的定义,如果国际测量局 (BIPM)发现地球的原子钟与天文时间有 0.9 秒的差异,则会添加闰秒。半年后,闰秒通过停止所有时钟一秒钟从地球时间中减去。
由于这个过程不是确定性的,ITU 讨论了摆脱闰秒,因为总是有相当多的计算机系统无法在不崩溃的情况下应对闰秒(例如俄罗斯的 GLANOSS 系统。
我开始与我的一位教授讨论如何简单地改变我们的原子钟计数秒的方式,目前由铯原子的量子变化定义——一秒等于 9.192.631.770 个量子变化。我建议简单地将这个定义重新定义为每秒更多的几个量子变化,使一秒有效地更长,从而使闰秒的原因无关紧要。我的教授反驳说,这将是一个巨大的错误,不幸的是,我们不得不停止讨论。
除了改变这个定义的明显组织问题之外,我想不出任何技术或物理问题,因为将任意数量的量子变化映射到任何时间间隔不是物理或数学推导的东西(例如 PI)。此外,一些需要非常高时间分辨率的计算机系统(例如 GPS 或 Galileo)已经完全没有考虑闰秒 - 所以总结一下,到目前为止,我认为我的论证没有任何问题。
我明天有一个测试,有一种奇怪的感觉,这个讨论会继续下去,改变我的最终分数。你能想到我还没有想到的任何技术、数学或物理问题吗?这真的让我抓狂。
java - 完全独立于系统时间变化的 Java 调度程序
正在使用Java Timer,然后切换到ScheduledExecutorService,但我的问题没有解决。因为在系统时间更改之前(通过 ntpd)计划的任务不会在指定的延迟时执行。没有日志,因为没有任何事情发生:(。
在 64 位 Linux 上的目标中使用 jre 1.6.0_26 64 位。
更新: ScheduledExecutorService 在 Windows 上运行良好。问题仅出现在运行 64 位 JVM 的基于 64 位 Linux 的系统上。它在运行 32 位 JVM 的 64 位 linux 上运行良好……奇怪。也没有在任何博客上找到任何相同的参考。
IBM 的 JAVA SDK 也有同样的问题(ibm-java-sdk-7.0-0.0-x86_64-archive.bin)。
我已经针对 JDK 7139684提交了缺陷,它被接受但已被关闭并标记为 6900441的副本。请投票给它,如果你觉得修复它值得……我不知道为什么它已经好几年没有修复了
这是我用来测试此问题的示例代码:
c# - 通过 Java 与 C# 应用程序同步时间
我有一个在 Debian OS 上运行的 Java 应用程序,并与一个 Windows C# 服务器程序进行通信。我的 Java 应用程序将通过 TCP/IP 连接到 C# 服务器程序。我现在面临的一个问题是我的 Debian OS 系统时间总是比 Windows Server 系统时间慢。这两个应用程序大多运行在一个无法访问 Internet 的内部网络中。
- 请问有什么方法可以同步这两个应用程序之间的时间吗?
- 我阅读了 NTP,Java 可以使用 NTP 与 C# 程序同步时间吗?
- C# 程序必须作为 NTP 服务器运行吗?(有什么办法吗?)
- 如果只是写这两个应用程序之间的消息交换,会不会有什么问题?
如果有人可以提供研究实现的链接,将不胜感激。
linux - 获取脚本的 ntpdate 结果
我有两个具有不同 IP 的 NTP 服务器。
我正在尝试制作一个将系统时钟与“ntpdate”客户端同步的bash脚本。如果第一个 NTP 服务器没有响应,我的脚本应该尝试连接到第二个 NTP 服务器。
我试图以这种方式创建一个名为 RESULT 的系统变量:RESULT = ntpdate 192.168.100.41
NTP 同步有效,但是当我制作“echo $RESULT”时,它的值始终为 0。所以我的问题是:有正确的方法吗?如何?
c++ - 是否有任何 C/C++ 库可以连接远程 NTP 服务器?
我正在制作一个需要将系统时钟与远程 NTP 服务器同步的 C++ 软件。现在,我正在使用“system”命令来调用控制台“ntpdate”命令。
..但我认为这样做是一种丑陋的方式。
你知道任何让我连接到远程 NTP 服务器的库吗?谢谢。