ros时间同步

2021/4/30 10:56:55

本文主要是介绍ros时间同步,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

ros时间同步

    • 1. 服务端host1(电脑)
      • 1.0在服务端host1(电脑)上安装ntp组件,附件deb包
      • 1.1 调整host1时间
      • 1.2 修改host1配置
      • 1.3 host1启动ntpd
    • 2. 客户端host2(mdc)
      • 2.0 在客户端host2(mdc)上安装ntp组件,附件deb包
      • 2.1 首先手动修改时间,确保客户端与服务端时间差不要太大,时间差太大可能会导致ntp时间同步失败
      • 2.2 修改host2配置
      • 2.3 host2启动ntpd
    • 3. 查看与时间同步服务器的时间偏差

1. 服务端host1(电脑)

1.0在服务端host1(电脑)上安装ntp组件,附件deb包

1.1 调整host1时间

当host1可以连接网络时间同步服务器,则

$ ntpd pool ntp.ubuntu.com

当host1不能连接外网,则手动调整时间

$ date -s ‘2008-05-23 01:01:01’

1.2 修改host1配置

$ vim /etc/ntp.conf

添加如下三行:

server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
restrict 192.168.1.6 mask 255.255.255.0 nomodify notrap

前两行表示将本地的硬件时间也作为同步的时间源之一,这样在不联网的时候可以把本机时间作为同步时间源, 在内网环境下,可以把配置文件中其他的server都删除掉。
第三行表示对客户端的限制,IP+mask表示允许网段的客户端,

其中parameter的参数主要有:
ignore : 拒绝所有类型的ntp连接
nomodify : 客户端不能使用ntpc与ntpq两支程式来修改服务器的时间参数
noquery : 客户端不能使用ntpq、ntpc等指令来查询服务器时间,等于不提供ntp的网络校时
notrap : 不提供trap这个远程时间登录的功能
notrust : 拒绝没有认证的客户端
nopeer : 不与其他同一层的ntp服务器进行时间同步

1.3 host1启动ntpd

查看systemd-timesyncd是否已注册到service列表中:

$ systemctl list-unit-files --type=service

如果没有,则:

$ systemctl daemon-reload

如果还没有,则可能是ntpd与ntpdate或者chrony冲突了,需要全部卸载,再重装ntpd的deb。
如果正常,则启动:

$ sudo service systemd-timesyncd start

设置ntpd开机自启动:

$ chkconfig ntpd on

2. 客户端host2(mdc)

2.0 在客户端host2(mdc)上安装ntp组件,附件deb包

2.1 首先手动修改时间,确保客户端与服务端时间差不要太大,时间差太大可能会导致ntp时间同步失败

$ date -s “2020-01-01 08:08:08”

2.2 修改host2配置

$ vim /etc/ntp.conf

删除其他的server 开头的配置项,这里一定要删除,只同步我们配置的那台服务器,添加上面设置的NTP服务器地址 :

server 192.168.1.100

2.3 host2启动ntpd

与1.3相同

3. 查看与时间同步服务器的时间偏差

$ ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================



这篇关于ros时间同步的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程