首页 > 编程知识 正文

linux配置ntp客户端(linux时间同步解析,linux adjtimex详解时间偏差函数ntp同步与offset)

时间:2023-05-06 01:25:15 阅读:121307 作者:446

一、adjtimex函数指令有什么用

adjtimex是Linux内核系统中的时间校正函数,基本上位于Linux的每个发行版中。 此函数主要用于修改和调整Linux的系统时间。

此函数提供了许多操作命令和命令来纠正操作系统的时间偏差。 当发现Linux系统的时间快或慢有一定的偏差时,可以使用此函数调整适当的偏移。

此函数允许用户自己修改时间偏移。 这意味着任何用户都可以使用此命令修改linux内核的时间。 不要小看这个adjtimex函数。 这非常方便。 要说为什么,那是因为我们在工作中经常面临ntp的这种同步问题。

经常使用linux操作系统的学生们一定会发现,随着使用时间的延长,系统时间和很多硬件时间不一致,偏差会变大。 这就是ntp问题,正好是adjtimex ) )命令可以解决这个问题。

ntp名词解释: ntp是一种可称为协议的技术,其全称是网络时间同步技术,旨在统一标准化系统时间和计算机时间,提高时间精度,避免时间偏移,主要是拥有相同的时间。

由于不同国家的时间设置存在一定的差异,使用的时间同步技术也不同,因此产生了名为ntp的协议。 ntp是测量这种时间精度的基准,统一计算时间的精度同步来实现精度。

二、linux系统为什么会出现时间错位

Linux系统之所以有时间偏差这一概念,是因为有两个时钟概念可分为硬件时钟和系统内核锁定。 硬件时钟是Linux系统主板上的时钟,也称为RTC时钟,内核时钟由软件系统核心驱动。 因为这两个时钟通常有一定的偏差,所以必须使用adjtimex (命令纠正这两个时间偏差。

RTC时钟和内核时钟的最大区别在于,RTC时钟由主板决定,无论是重新启动还是关闭都始终存在。 另一方面,内核时钟由内核软件决定,只有在打开电源时才存在内核时钟,关闭后内核时钟将关闭。

通常,我们需要的时间是linux的内核时间,内核时间在关闭时不存在,因此在linux系统刚通电后内核时间就会调用RTC使用的时间,使两个时间同步。

这两块表长时间使用会逐渐产生偏差,什么都不做的话偏差就会越来越大,所以时间同步是我们现在必须解决的问题。

三.修改时间的方法和adjtimex命令一览表

那么,该如何修正RTC时间和内核时间的偏差呢? 此时,我们的adjtimex ) )函数,下面的相关命令可以检测这两个时钟的偏移时间,并且精确的水平可以达到微秒水平。

然后,使用此函数下的修改命令调整此偏差值,使两个时钟的时间相等。 也可以调整时间偏差将此命令的质量作为一个系统启动脚本,并在linux系统关闭后每次通电时自动运行此脚本,以匹配两个时钟的偏差精度。

以下是adjtimex函数的语法和所有命令的详细信息。

上图是此函数的所有指令,其语法都是adjtimex xxx后跟相应的指令。 我们最常用的是-c -compare指令,该指令是RTC始终看到内核时钟与两个时间之间的偏差值。

可以通过设置与两个指令(adjtimex -t或-f )相对应的差异和偏移来修改两个时钟之间的差异。

四、详细了解linux系统,纠正时间偏差

adjtimexcompare查看时间偏差值

以上说明了一系列的理论知识和时间偏差的修正方法。 接下来,开始正式实践时间偏差的修正方法。 详细内容请参照下图的操作。

上面的屏幕快照列出了使用adjtimexcompare命令查询的RTC时钟和内核时钟的特定时间偏差。 下面介绍每个字段表示的含义。

名为2nd diff的字段指内核时钟和RTC时钟之间的偏差,tick和freq值这两个字段是需要校正的参考字段,通常根据这两个字段进行校正。

上面的每条记录都表示每10秒做一次统计。 也就是说,如果值2nd diff (相当于内核时间每10秒延迟0.001xxx秒的时间)为负值,则表示系统内核时间已延迟。 老实说,很明快。

adjtimex -t校正时间偏差值

然后,使用名为adjtimex -t的函数命令纠正时间偏移。 修正偏差时,不要只看上面一个数据的偏差值,而要连续看多个数据的偏差值取平均值进行修正。 根据上图,平均值大概是1微秒,所以只要修正这个1微秒的值就可以了。

因为系统时间晚了,所以想让你早点去的设定为正数,时间单位很微妙,可以用命令“adjtimextick 10001”来调整。

adjtimex -f准确的时间偏差值

上图是用-t函数命令修改的时间表。 从图中可以看到,值2nd diff的差值相当小,这两个时钟之间的差值小于1微秒。 如果只有大约零点数微秒的差,想要更准确地修正-t命令也无法实现的话,只能使用-F调整偏移来决定。

下图是adjtimex -f命令用于修改的修改时间表达式。 使用此表达式可以修改其馀零点之间的细微差异值。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。