一种RTC时钟准确性验证方法和装置与流程

文档序号:26591242发布日期:2021-09-10 20:59阅读:222来源:国知局
一种rtc时钟准确性验证方法和装置
技术领域
:1.本发明属于计算机
技术领域
:,具体涉及一种rtc时钟准确性验证方法和装置。
背景技术
::2.随着计算机技术的突飞猛进以及计算机网络应用的不断涌现,计算机的精准的时间同步就成为了越来越重要的事情。以unix系统为例,时间的准确性几乎影响到所有的文件操作。如果一台机器的时间不准确,例如在从时间超前的机器上建立一个文件,并使用相应的查看命令进行查看,以当前时间减去所显示的文件修改时间会得一个时间负值,这一问题对于网络文件服务器是一场灾难,文件的可靠性将不复存在。为避免产生本机错误,虽然可从网络上获取时间,这样系统时钟便可与公共源同步了。一旦这一公共时间源出现差错就将产生多米诺效应,与其同步的所有机器的时间都会因此全都错误。3.另外,当涉及到网络上的安全设备时,同步问题就更为重要了。这些设备所生成的日志必须要反映出准确的时间。尤其是在处理繁忙数据的时候,如果时间不同步,几乎不可能将来自不同源的日志关联起来。一旦日志文件不相关连,安全相关工具就会毫无用处。不同步的网络意味着企业不得不花费大量时间手动跟踪安全事件。4.而为保证时间同步的准确性通常采用对计算机中的rtc时钟准确性进行测试的方式及时发现并处理不同步的问题,现有的测试方式主要采用手工测试方式,所以导致测试次数和覆盖的样机数量有限,不仅人工成本高而且测试效率低。技术实现要素:5.为了解决现有技术存在的人工成本高、测试效率低的问题,本发明提供了一种rtc时钟准确性验证方法和装置,其具有降低人工成本、提升了测试效率等特点。6.根据本发明的具体实施方式的一种rtc时钟准确性验证方法,包括:7.连接外部网络并基于预设时间同步工具将网络时间同步至计算机系统时间和rtc时间;8.基于计算机系统的定时任务方式构建定时重启任务;9.断开外部网络启动所述定时重启任务对计算机系统进行重启;10.基于预设时间读取工具获取所述定时重启任务完成后的当前rtc时间,并将所述当前rtc时间和当前网络时间进行比较,确定比较结果并根据所述比较结果确定rtc时钟准确性。11.进一步地,所述根据所述比较结果确定rtc时钟准确性包括:12.若所述当前rtc时间和所述当前网络时间的时间差大于第一预设阈值时,则证明rtc时钟准确性不高。13.进一步地,所述根据所述比较结果确定rtc时钟准确性还包括:14.若所述当前rtc时间和所述当前网络时间的时间差大于第二预设阈值时,则获取所述定时重启任务完成后的当前计算机系统时间,并将所述当前计算机系统时间和所述当前rtc时间进行比较。15.进一步地,在所述连接外部网络并基于预设时间同步工具将网络时间同步至计算机系统时间和rtc时间之后还包括:16.基于所述预设时间读取工具查看所述rtc时间和所述计算机系统时间是否修改成功,若未修改成功则采用所述预设时间同步工具再次进行网络时间的同步直至修改成功。17.进一步地,所述连接外部网络并基于预设时间同步工具将网络时间同步至计算机系统时间和rtc时间包括:18.基于rdate命令或ntpdate命令将网络时间同步至计算机系统时间和rtc时间。19.进一步地,所述预设时间读取工具包括hwclock命令。20.进一步地,所述基于计算机系统的定时任务方式构建定时重启任务包括:21.使用预设测试脚本配置crontab命令以构建所述定时重启任务。22.进一步地,所述预设测试脚本内容包括重启次数和每次重启间隔时间。23.进一步地,所述预设测试脚本内容还包括在每次重启后的计算机系统时间和rtc时间。24.根据本发明具体实施方式提供的一种rtc时钟准确性验证装置,包括:25.同步模块,用于连接外部网络并基于预设时间同步工具将网络时间同步至计算机系统时间和rtc时间;26.定时模块,用于基于计算机系统的定时任务方式构建定时重启任务,并断开外部网络启动所述定时重启任务对计算机系统进行重启;以及27.判断模块,用于基于预设时间读取工具获取所述定时重启任务完成后的当前rtc时间,并将所述当前rtc时间和当前网络时间进行比较,确定比较结果并根据所述比较结果确定rtc时钟准确性。28.本发明的有益效果为:通过采用预设时间同步工具将外部网络时间与计算机时间和rtc时间进行同步,然后通过根据计算机系统的定时任务方式构建相应的定时重启任务对断网后的计算机系统进行重启,再将重启任务执行完后的当前rtc时间和当前网络时间进行比较从而完成rtc时钟准确性的测试,从而实现了测试的自动化,有效的减了人力成本,并极大提升了测试效率。附图说明29.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。30.图1是根据一示例性实施例提供的rtc时钟准确性验证方法的流程图;31.图2是根据一示例性实施例提供的rtc时钟准确性验证方法的另一流程图;32.图3是根据一示例性实施例提供的rtc时钟准确性验证装置的原理图。33.附图标记[0034]1‑同步模块;2‑定时模块,3‑判断模块,4‑修改验证模块。具体实施方式[0035]为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。[0036]参照图1所示,本发明的实施例提供了一种rtc时钟准确性验证方法,具体包括:[0037]101、连接外部网络并基于预设时间同步工具将网络时间同步至计算机系统时间和rtc时间;[0038]rtc(real_timeclock),通常称为时钟芯片,能够为计算机操作系统、电子系统等提供精确的实时时间基准,在国产的计算机的cpu不分架构,cpu的架构可以是龙芯、兆芯、飞腾、鲲鹏或海光cpu,计算机系统可以是linux系统,并且可以是桌面版本或者服务器版本,可通过计算机系统自带的时间同步工具将计算机系统时间和rtc时间与网络时间相同步,进而保证了测试前的网络时间和rtc时间以及系统时间的一致性。[0039]102、基于计算机系统的定时任务方式构建定时重启任务;[0040]通过采用计算机系统本身自带的定时任务方式,可构建相应的定时重启任务,对计算机系统进行定时的重启,实现自动的重启。[0041]103、断开外部网络启动所述定时重启任务对计算机系统进行重启;[0042]在测试开始前可通过拔掉计算机网线的方式,切断计算机的网络连接,这样能够停止计算机系统时间自动进行网络同步,从而切断了外部时间对rtc时间的影响。并通过重新启动系统的方式对rtc时钟进行测试。[0043]104、基于预设时间读取工具获取定时重启任务完成后的当前rtc时间,并将当前rtc时间和当前网络时间进行比较,确定比较结果并根据所述比较结果确定rtc时钟准确性。[0044]在定时重启任务完成后通过查看定时重启任务执行完后的rtc时间与当前的网络时间进行比较进而确定时间差,并通过时间差的大小判定rtc时间是否准确,进而对rtc时钟的准确性进行判定。不需要人工再手动的进行重启等操作,大大降低了人工劳动和用工成本,同时自动化程度更高,提高了测试效率。[0045]为提高准确定判断的标准化,在本发明的另一具体实施例中该方法还包括:[0046]若当前rtc时间和当前网络时间的时间差大于第一预设阈值时,则证明rtc时钟准确性不高。例如第一预设阈值一般可设定为2秒钟,一旦误差超过2秒钟则可测试机的rtc时钟准确性不高,因为考虑到系统重新启动存在时间误差问题,设定2秒钟的误差阈值是比较合理的判定标准。[0047]再有若当前rtc时间和当前网络时间的时间差大于第二预设阈值时,则获取定时重启任务完成后的当前计算机系统时间,并将当前计算机系统时间和当前rtc时间进行比较。[0048]通常第二预设阈值可设定为5秒或者5秒以上,因为考虑到在重启测试过程中可能存在的网络时间跟计算机系统时间存在的不一致的问题,从而导致在重启任务完成后rtc时钟与网络时间差较大,再出现这种情况时则可通过将rtc时间和系统时间进行比较的方式进行确定问题出在了哪里,如果系统时间和rtc时间能够对上,保持一致,那么可能在进行网络时间和计算机时间以及rtc时间进行同步时存在时间未进行同步,进而导致rtc时间和网络时间相差较大的原因,再次同步后可进行相应的测试。[0049]可以理解的是,根据计算机系统的不同和计算机硬件的不同配置情况,第一预设阈值和第二预设阈值的具体数据,本领域技术人员可以根据实际测试的情况进行设定,本发明在此不做限制。[0050]为进一步优化该技术方案,避免上述情况的发生,参照图2所示,在本发明的另一具体实施例中rtc时钟准确性验证方法包括以下步骤:[0051]201、连接外部网络并基于预设时间同步工具将网络时间同步至计算机系统时间和rtc时间;[0052]202、基于预设时间读取工具查看rtc时间是否修改成功,若未修改成功则采用所述预设时间同步工具再次进行网络时间的同步直至修改成功;[0053]203、基于计算机系统的定时任务方式构建定时重启任务;[0054]204、断开外部网络启动定时重启任务对计算机系统进行重启;[0055]205、基于预设时间读取工具获取定时重启任务完成后的当前rtc时间,并将当前rtc时间和当前网络时间进行比较。[0056]通过在连接外部网络进行计算机系统时间和rtc时间的同步后,采用预设时间读取工具查看rtc时间和计算机系统时间是否修改成功,从而能够在网络时间同步完成后即刻进行相应的验证,避免时间未同步完成就行重启任务测试,浪费时间等情况的发生,为后续重启任务的测试提供了保证。[0057]下面将结合linux计算机操作系统对本发明的验证方法进行具体的说明,在计算机上安装linux系统后将计算机连接外网,在开始测试之前需要连接外网同步系统时间和rtc时间,可通过rdate命令或ntpdate命令将网络时间同步至计算机系统时间和rtc时间。[0058]其中rdate本身是用来获取远程时间服务器上时间用的,带上‑s参数,就可以将获取到的时间应用到本地系统,其相应的程序如下:[0059]‑ssetthesystemtimetothereturnedtime.[0060]‑uuseudpinsteadoftcpasthetransport.[0061]‑lusesyslogtooutputerrors(cron.warning)andoutput(cron.info).[0062]‑tsettimeoutinsecondsforeveryattempttoretreivedate.[0063]ntpdate本身就是用来同步时间的工具,其具体程序如下:[0064]disclaimer:thefunctionalityofthisprogramisnowavailableinthentpdprogram.seethe‑qcommandlineoptioninthentpd‑networktimeprotocol(ntp)daemonpage.afterasuitableperiodof[0065]mourning,thentpdateprogramistoberetiredfromthisdistribution。[0066]然后使用hwclock命令查看rtc时间是否修改成功,和当前网络时间一致,hwclock命令是一个硬件时钟访问工具,它可以显示当前时间、设置硬件时钟的时间和设置硬件时钟为系统时间,也可设置系统时间为硬件时钟的时间,其具体的命令选项为:[0067]‑s:将硬件时钟同步到系统时钟;[0068]‑w:将系统时钟同步到硬件时钟;[0069]例如:[root@localhost]#hwclock‑w,表示将时间同步至计算机系统时钟。[0070]最后使用linux的定时任务方式的重启测试方式,设定重启间隔是若干分钟,例如重启间隔是1分钟,重启次数可以自己设定,例如1000次,在1000次测试完成之后,用hwclock命令查看测试完成后的rtc时间,如果当前的rtc时间和网络时间差别超过2秒钟,证明测试机的rtc时钟准确性不高。[0071]其中,定时重启任务可使用预设测试脚本配置crontab命令以构建定时重启任务。预设测试脚本内容包括重启次数和每次重启间隔时间。[0072]预设测试脚本内容还包括在记录每次重启后的计算机系统时间和rtc时间。[0073]具体的,在登录linux系统,并取得root权限后,可使用测试脚本配置crontab的定时任务,crontab命令常见于unix和类unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。[0074]通过创建修改定时任务的配置文件/home/reboot‑cron,输入内容一行输入*/1****rootdate>>/home/date.log;hwclock>>/home/date.log;reboot;bash/home/reboot‑stop.sh,输入:wq保存并且退出配置文件。输入命令crontab/home/reboot‑cron创建定时任务,代表的含义是每隔1分钟重启1次系统。并且记录系统时间和rtc硬件时间,方便测试完成后进行时间的对比。通过运行reboot‑stop.sh脚本判断日志记录的重启次数,当测试1000次后,自动删除定时任务。其中reboot‑stop.sh脚本的内容如下:[0075][0076]在测试开始后,拔掉网线断网,停止时间自动进行网络同步。等测试1000次后,reboot‑stop.sh脚本会自动删除定时任务停止测试。count2是统计的测试次数,等测试完成1000次后,ifelse判断语句自动判断为真后,执行crontab‑r删除定时任务,停止重启测试。[0077]在1000次测试完成之后,用hwclock命令查看测试完成后的rtc时间,如果当前的rtc时间和网络时间差别超过2秒钟,证明测试机的rtc时钟准确性不高。如果时间差别比较大,就查看/home/date.log的日志。对比date获取的系统时间和hwclock获取的rtc时间。[0078]需要说明的是,上述定时重启任务中的重启次数和间隔时间本领域技术人员可根据实际测试需求进行相应的设定,本发明在此不做限定。[0079]图3是本发明是一些具体实施例提供的一种rtc时钟准确性验证装置的结构示意图,该装置适用于执行本发明实施例提供给的一种rtc时钟准确性验证方法的具体流程。如图3所示,该装置具体可以包括:[0080]同步模块1,用于连接外部网络并基于预设时间同步工具将网络时间同步至计算机系统时间和rtc时间;[0081]定时模块2,用于基于计算机系统的定时任务方式构建定时重启任务,并断开外部网络启动定时重启任务对计算机系统进行重启;以及[0082]判断模块3,用于基于预设时间读取工具获取定时重启任务完成后的当前rtc时间,并将当前rtc时间和当前网络时间进行比较,确定比较结果并根据所述比较结果确定rtc时钟准确性。以及[0083]修改验证模块4,用于基于预设时间读取工具查看rtc时间和计算机系统时间是否修改成功,若未修改成功则采用预设时间同步工具再次进行网络时间的同步直至修改成功。[0084]本发明实施例提供的rtc时钟准确性验证装置可执行本发明任意实施例提供的rtc时钟准确性验证方法,具备执行方法相应的功能模块和有益效果。[0085]本发明上述实施例所提供的rtc时钟准确性验证方法和装置,通过根据计算机系统的定时任务的方式,构建相应的定时重启任务,实现了自动化的测试方案,有效缩减了人力成本,极大提升了测试效率。[0086]本
技术领域
:的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。[0087]此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。[0088]上述提到的存储介质可以是只读存储器,磁盘或光盘等。[0089]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。[0090]上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。[0091]以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1