【发布时间】:2023-03-20 02:35:01
【问题描述】:
我有一些由前端应用程序记录在 Unix 服务器中的日志文件。这些文件包含所有以时间戳值开头的日志记录语句,后跟日志记录文本。以下示例显示了如何在这些文件中完成日志记录的示例:
02 07:31:05.578 记录文本........(我在这里加粗了时间戳,因为我将在下面用它来解释这个时间戳记法)
02 07:31:05.579 记录文本............
02 07:31:05.590 记录文本............
02 07:31:05.591 记录文本............
02 07:31:05.593 记录文本............
时间戳值说明 -
02 : 日期值(如果日期是 7 月 02 日,则值为 02)
07 : 小时
31 : 分钟
05 : 秒
578 : 毫秒
注意:如果您正在寻找“YYYY”即年份字段,请忽略。为简单起见,请仅使用上述格式。
我必须实现的目标:我必须找出给定文件中与给定文件中所有其他连续时间戳对相比最大差异的两个连续时间戳.
示例:如果您看到上面的日志文本示例,您将看到上面示例中唯一一对具有最大差异的连续时间戳是 02 07:31:05.579 和 02 07:31:05.590
我正在寻找一个可以在所需文件上运行的 shell 脚本,并将输出作为具有最大差异的两个连续时间戳。
我为什么需要它:有很多这样的日志文件,我需要监控日志语句之间存在巨大差异的情况。这可能会帮助我找出诸如 SQL 查询由于锁定而等待事务发生很长时间、API 请求没有从目标获得响应等情况。
如果有人也可以分享有关此问题的任何其他帖子或任何其他有帮助的有效方式。
感谢大家阅读并抽出时间。如果需要更多信息,请告诉我。
【问题讨论】:
-
...你必须阅读How to Ask
-
@J.Chomel,谢谢,请参阅我在浏览您的链接后更新了帖子。
-
一般来说这是不可能的,因为使用了去势日期。你可以有
28 23:59:59.999,然后是01 00:00:00.001。这可能意味着 2 毫秒(在非闰年的 2 月底)或 3 天(在 8 月底)。但由于我们不知道月份,我们只能猜测一下。鉴于此输入,也无法将时间戳转换为 UNIX 纪元时间(wince 1970-01-01 秒)。所以谁想出了这种时间戳格式让你的工作变得非常困难。
标签: shell unix logging timestamp date-difference