Bash 检查日志时间戳序列的最快/最有效的方法

Bash 检查日志时间戳序列的最快/最有效的方法,bash,Bash,我最近在检查路由器日志时注意到,有一些日志条目顺序不正确。条目是按顺序追加的,因此这意味着路由器在操作期间更改了它的日期和时间,而不是应该发生的事情。很明显,这是我将来需要检查的东西,但这是一个大型路由器,可以产生大量日志条目。这些文件在1Mb标记处旋转和压缩,并在11个文件处整体旋转。(filename.0.gz到filename.9.gz以及当前未压缩的文件名) 因此,我需要检查所有11个文件中时间戳顺序不一致的条目,需要检查大量日志。有了这么多的日志要检查,显然,整个操作和实际使用的脚本所

我最近在检查路由器日志时注意到,有一些日志条目顺序不正确。条目是按顺序追加的,因此这意味着路由器在操作期间更改了它的日期和时间,而不是应该发生的事情。很明显,这是我将来需要检查的东西,但这是一个大型路由器,可以产生大量日志条目。这些文件在1Mb标记处旋转和压缩,并在11个文件处整体旋转。(filename.0.gz到filename.9.gz以及当前未压缩的文件名)

因此,我需要检查所有11个文件中时间戳顺序不一致的条目,需要检查大量日志。有了这么多的日志要检查,显然,整个操作和实际使用的脚本所节省的最小时间,可能会在运行时间和CPU负载方面产生巨大的差异

我有几十台路由器要检查。我打算将所有日志文件拉回到我的Linux服务器,解压缩它们并将它们生成一个文件,然后编写一个脚本来检查序列


请问最有效的方法是什么?

11MB听起来没那么多。只要尝试一个干净、朴素的解决方案,看看它首先会有多慢。然后用代码示例问一个特定的优化问题。11Mb不太多吗?哦,好的,谢谢。我的日志时间戳的格式是:2014年9月17日11:28:24是否有一些巧妙的日期转换命令,或者我是否将行分割为单个变量,将月份转换为数字,然后进行一个冗长的嵌套比较:是年-月-日-日-日等等?GNU日期至少
date-d'Sep 17 11:28:24 2014'+%s
将从纪元开始以秒为单位计算时间。谢谢!!todate=$(日期-d'2014年9月17日11:28:24'+%s)运行得非常好:-)