热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

让Linux下位机跟Windows上位机自动时间同步

需求来源嵌入式系统通常分上位机和下位机,如果二者的日志时间戳能一致,则对定位问题价值巨大。另外有些原型系统的RTC时钟没装电池,更需要从

需求来源

嵌入式系统通常分上位机下位机,如果二者的日志时间戳 能一致,则对定位问题价值巨大。另外有些原型系统的RTC时钟没装电池,更需要从外部获取真实时间,否则每次开机都是1970年1月1号
如果能够让下位机每次开机都跟上位机对一次时,即同步一下时间,则可满足上述需求,那么怎么对时呢?

解决方案:NTP

NTP又叫网络时间协议,是一种用于时间同步的网络协议。

配置Windows为NTP服务器

Linux和Windows都有NTP客户端,但是Windows作为上位机,还必须得具备NTP服务器的能力,幸好,
win7以后的系统已经自带NTP server模块了,用户只需要打开即可,打开的方法见这篇文章

配置Linux为NTP客户端

Linux本身已经自带NTP客户端ntpdate了,我们要做的是让它开机自动对时,于是在/root/.bashrc里加一行即可

ntpdate 192.168.20.103 #上位机的IP

注意,本文假设你的下位机是默认root账户登录,若是普通账户则需要sudo来提升权限,以及expect脚本来实现自动输入密码!

注意2,为了正确显示时间,还要确保时区配置正确,这里只要设置TZ环境变量即可,在/root/.bashrcntpdate语句前加一行:

TZ='Asia/Shanghai'; export TZ

就能正确显示时区了!

ps.如果你想用别的时区,可以运行tzselect这个交互式命令查询你想要的时区,它会给出对应的TZ环境变量值。
pps.设置时区前系统的时间是UTC时间,设置后是CST时间,这里是二者的区别

root@linaro-ubuntu-desktop:~# date
Mon Aug 16 18:20:53 UTC 2021
root@linaro-ubuntu-desktop:~# TZ='Asia/Shanghai'; export TZ
root@linaro-ubuntu-desktop:~# date
Tue Aug 17 02:22:09 CST 2021

让NTP服务随Windows开机启动

之前开启的NTP服务属于手工启动,Windows重启后就停了,这时Linux客户端会报错:找不到服务器
NTP客户端找不到NTP服务器
所以需要让NTP服务开机启动,做法是:计算机管理->服务和应用程序->服务,找到Windows Time服务,双击打开属性对话框,点开启动类型下拉框,将手动改为自动,最后点确定退出。
让NTP服务开机启动

使用效果

配置后第一次重启

Connecting to 192.168.20.161:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.Welcome to Linaro 12.11 (GNU/Linux 4.6.0 uImageV0.2 -svn316 armv7l)* Documentation: https://wiki.linaro.org/
Last login: Thu Jan 1 00:00:07 1970
19 Jul 08:26:23 ntpdate[1692]: step time server 192.168.20.103 offset 1626683154.275740 sec

前后对比

绿线以上为对时前


推荐阅读
  • REVERT权限切换的操作步骤和注意事项
    本文介绍了在SQL Server中进行REVERT权限切换的操作步骤和注意事项。首先登录到SQL Server,其中包括一个具有很小权限的普通用户和一个系统管理员角色中的成员。然后通过添加Windows登录到SQL Server,并将其添加到AdventureWorks数据库中的用户列表中。最后通过REVERT命令切换权限。在操作过程中需要注意的是,确保登录名和数据库名的正确性,并遵循安全措施,以防止权限泄露和数据损坏。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • ZABBIX 3.0 配置监控NGINX性能【OK】
    1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ... [详细]
  • 其实之前也有下载过完整的android源码,但是从来没有对这个做过一些总结,在加上最近需要经常去看,索性就在从新下载,编译一下,其实这些东西官网上面都有。http:sou ... [详细]
  • MySQL5.6.40在CentOS764下安装过程 ... [详细]
  • 基于SSL的mysql服务器的主从架构实现说明:本文选用172.16.22.1作为主服务器,172.16.22.3作为从服务器从服务器的mysql软件版 ... [详细]
  • Docker安装Rabbitmq(配合宝塔)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Docker安装Rabbitmq(配合宝塔)相关的知识,希望对你有一定的参考价值。一、事前准备 ... [详细]
  • until命令和while命令类似,while能实现的脚本unt ... [详细]
author-avatar
色系迷人_777
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有