比较时间戳

比较时间戳

我的用户有时会收到带有时间戳的警报(来自另一个系统,通过电子邮件),但没有主机名。我想给他们一个可以比较我的系统中的时间戳的函数,其设计如下:

/home/admin/assets/sagLogs/

该目录包含 705 个以每个主机命名的目录。所以它们看起来像:

bes-t1sg0120, art-t1sg8479, mmo-t1sg0132, ..., ...

每个目录都包含在创建时命名的日志文件:

06-10-19-13-57-46  05-29-19-08-25-50  05-24-19-16-52-02  05-22-19-16-42-52  05-22-19-10-33-06  

命名为月-日-年-时-分-秒。我希望能够搜索时间戳在输入时间 5 分钟内的所有日志,无论主机名如何。

我已经处理了格式:

#Times[0] = DAY
#Times[1] = MONTH
#Times[2] = YEAR
#Times[3] = HOUR
#Times[4] = MINUTE
IFS=':' read -r -a Times <<< $1
stamp="${Times[1]}-${Times[0]}-${Times[2]}-${Times[3]}-${Times[4]}"

因此输入的形式为Day:Month:Year:Hour:Minute;所以如果 $1 是06:05:19:12:30(2019 年 5 月 6 日中午 12:30),那么$stamp = 05-06-19-12-30.

所以我想找到:
05-06-19-12-25和之间的所有内容05-06-19-12-30,它们位于这些~/assets/sagLogs/*目录之一中。

如何高效抓取距离我的图章5分钟以内的文件?我尝试将每个文件名加载到一个数组中,同时 awk'ing 最后一部分,但这是完全错误的,而且速度很差。让我知道你的想法。如果您能向我展示如何获取绝对文件路径,那就加分了!

相关内容