欢迎光临散文网 会员登陆 & 注册

帮助Raspberry Pi更好地完成跨网络同步系统时钟任务

2022-02-02 22:45 作者:28283844972_bili  | 我要投稿

🧨 🎇 🧧 m( ^=∩王∩=^ )m 🧧 🎇 🧨

年前的这几天因为供电线路维修,导致自己的“吃灰派”多次意外断电。。。担心跑在上面的几个用户服务进程数据多少会受到些影响,所以进行了一次比较全面的检查维护。在查看系统日志的时候发现系统时钟同步总会有网络超时的问题:

截取自/var/log/syslog

如果在日常使用中对系统时钟的精确度、实时性要求不是特别严格的话,这算不上什么大问题,可以选择忽略。不过借此机会,打算在解决问题的同时略微了解一下系统时钟同步的服务(才……才不是因为有什么奇怪的强迫症呢!ヾ(≧へ≦)〃)

同步系统时钟的方式一般来说有两种,通过RTC硬件模块或NTP网络同步时间,前者需要额外借助RTC硬件电路实现,能够在不依赖网络的情况下完成同步任务;后者需要依赖联网完成时钟同步,受当前网络连通状况的影响较大。树莓派开发板是不带有RTC模块电路的,所以默认是通过NTP网络校时,而系统默认的NTP同步源在国内的表现并不乐观。虽然外接一个GPIO接口所能使用的高精度RTC模块(DS3231),无论是从成本还是后续实现的难易程度来说都是完全可接受的,但本着能省则省、减少模块依赖、增强系统整体稳定性的原则,通过解决网络授时超时的问题,用以满足高效同步系统时钟的需求。很明显,问题的根源在于NTP网络时钟同步源的选取;想要修改系统默认设置,就必须要找到相应的工具或配置文件。

🧨 🎇 🧧 m( ^=∩王∩=^ )m 🧧 🎇 🧨

我自己的树莓派上面运行的是raspios-buster-arm64-lite官方系统,具体信息如下:

百度一下有关树莓派系统时钟同步的方案,大部分都是提供如何调整本地时区或者通过安装额外的NTP授时工具包的解决问题。可惜的是,我的系统时区设置并无问题(Time zone: Asia/Shanghai (CST, +0800)),也并不愿意再额外引入软件包用于解决这个无关痛痒的问题;既然系统默认能够实现NTP同步系统时钟的功能,那么一定存在某种机制或工具来控制这一切,简单检索一下systemd服务提供的各种便捷功能,暂且找到与系统时间最为密切的管理工具timedatectl,习惯性地man一下:

同时顺藤摸瓜式地找到systemd-timesyncd守护服务,最直接相关的配置文件大概率是在/etc/systemd/路径下,存在一个名为timesyncd.conf的配置文件:

至此基本可以确定自己的推测了,查阅timesyncd.conf帮助文档进一步证实:

完整地阅读帮助文档可以得知,当配置中的NTP服务列表缺省时,默认采用FallbackNTP列表中的NTP时钟同步源进行校时。那么解决方案就是在timesyncd.conf配置文件中添加合适的NTP服务主机名或ip,彼此之间并用空格隔开。百度一下可用的NTP授时服务并测试网络延迟,以我的为例,选择国内的NTP网络时钟同步服务主机,找最适合自己的:

ntp.ntsc.ac.cn

国家授时中心NTP授时服务

ntp.tuna.tsinghua.edu.cn

清华大学NTP授时服务

最终配置内容如下,剔除 # 取消注释,仅以列表格式修改了NTP项的内容,其他配置项默认即可:

/etc/systemd/timesyncd.conf

保存并退出,重新载入系统时钟同步服务、检查服务进程状态,按预期完成了同步任务:

$ sudo systemctl restart systemd-timesyncd.service

$ systemctl status systemd-timesyncd.service

再次检查系统日志记录,确认是“一命通关”:

使用timedatectl可以获取更详细的时钟同步信息:

当然,这一切的前提是你的系统时区设置符合预期、网络时钟同步功能开启,可以参考以下帮助内容:

🧨 🎇 🧧 m( ^=∩王∩=^ )m 🧧 🎇 🧨

以上方法应该也同样适用于Debian或基于Debian的各类GNU/Linux发行版,只能说systemd服务所提供的功能实在是太丰富、太实用了,值得花时间去了解、学习。


参考资料:

  • https://manpages.debian.org/buster/systemd/timedatectl.1.en.html

  • https://manpages.debian.org/buster/systemd/timesyncd.conf.5.en.html

  • https://wiki.archlinux.org/title/Systemd-timesyncd_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

  • https://dns.icoa.cn/ntp/



帮助Raspberry Pi更好地完成跨网络同步系统时钟任务的评论 (共 条)

分享到微博请遵守国家法律