linux – 在线时使用NTP同步时钟,在离线时使用RTC同步?
是否存在在线时将
Linux系统与NTP同步的现有机制,以及在离线时可预测的漂移RTC?
我们运营远程“收集器”:嵌入式Linux系统,用于收集传感器数据并对其进行时间戳.我们需要他们的时钟误差保持相当小,比如低于5秒.通常我们使用NTP来同步他们的时钟,并且只要系统在线,它就可以正常工作. 问题是一些收集器的上行链路非常糟糕,可能会持续数小时,数天甚至数周.这并没有阻止本地数据收集,但是如果没有NTP,Linux系统时钟会严重且无法预测地漂移. OTOH,硬件的RTC也大量漂移,但速度不变. RTC漂移率因板而异,但每块板是恒定的并且可以测量. 我想我们需要的是一种执行以下操作的机制: >在部署之前测量电路板的RTC漂移率 “机制”是指一些维护良好,文档化的软件和/或配置,可以处理“在线”与“离线”两种状态,确保系统时钟与正确的时间源同步(ntp vs. rtc),检测状态变化,并校正RTC漂移.它是作为一个特殊的ntpd配置/插件实现,作为一个单独的守护进程实现,作为一个cron作业,也无关紧要. 我看了Chrony,但根据其documentation,它试图预测系统时钟的漂移,在我们的情况下漂移比RTC更加不可预测. Chrony似乎只使用RTC来重新启动时间. (1)注意ntpd激活内核的’11 -minute模式'(每11分钟从系统时钟更新rtc).目前的内核和ntpd似乎没有办法阻止11分钟的模式.因此,当ntpd运行时,任何rtc漂移信息都会丢失(thx @billthor). 更新/编辑: >我们正在考虑通过USB或串行为MSF或DCF77信号(我们位于欧洲)添加外部无线电时钟.但我们宁愿保持硬件精益. 解决方法
你的情况很不寻常,如果有人想出一个基于ntpd的标准配置来做你想做的事情,我会感到惊讶.也就是说,我喜欢感到惊讶,并且经常在这些部分周围发生.
但是,直到有人提出更好的想法,您是否考虑过像这样的crontab条目? */5 * * * * ntpdate 0.pool.ntp.org || ( hwclock --adjust; hwclock --hctosys ) IE,每五分钟尝试通过ntpdate同步时钟,如果(并且仅当)失败,根据/ etc / adjtime文件调整硬件时钟漂移(其格式在man hwclock中详细说明,并且其第一行您已根据您对特定RTC速率的了解进行了适当填充),然后从RTC设置系统时钟. 请注意,如果您要使用这样的解决方案,并且要部署任意数量的这些系统,那么使用该池会被认为是礼貌的,并且会根据您的使用情况按比例提供服务器.您可以在http://www.pool.ntp.org/en/vendors.html找到更多信息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |