【发布时间】:2020-07-26 15:34:37
【问题描述】:
我的日志存储在多个基于 Sun 的 unix 服务器中。
所以 Req1 的日志可能在 server1 中,Req2 和 Req3 可能在 server2 中,然后 Req4 可能再次在 server1 中。没有正确的顺序,因为它是根据负载均衡器决定的来存储的。
我们使用 grep 从所有服务器获取数据。但问题是它们不是根据时间排序的。我想要的是从所有服务器获取日志文件,如下所示,但根据日期和时间对其进行排序。
编辑 这是问题的示例。
for (( i=1; i<=24; i++ )) do
echo 'server1' $logfile $i
grep abd12453 /var/logs/$i.log
echo 'server2' $logfile $i
ssh server2 "grep 'abd12453' /var/logs/$i.log"
done
其中 abd12453 是提取日志所基于的用户。
上面的命令合并了两个服务器的所有文件的日志并打印出来。如下所示。
server1 logfile1.log
06/13/2020 13:26:11.142 abd12453 server 1 log data1. server 1 log data1. server 1 log data1. server 1 log data1. server 1 log data1. server 1 log data1. server 1 log data1. server 1 log data1. server 1 log data1. server 1 log data1. server 1 log
server2 logfile1.log
06/13/2020 13:25:23.250 abd12453 server 2 log data1. server 2 log data1. server 2 log data1. server 2 log data1. server 2 log data1. server 2 log data1. server 2 log data1. server 2 log data1. server 2 log data1. server 2 log data1. server 2 log
server1 logfile2.log
06/13/2020 13:15:35.142 abd12453 server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2.
server2 logfile2.log
06/13/2020 13:14:42.156 abd12453 server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2. server 1 log
以上日志都是单行加上用户名。
我需要根据日期和时间对上面的日志数据进行排序。
需要的输出应该是
server2 logfile2.log
06/13/2020 13:14:42.156 abd12453 server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2. server 1 log
server1 logfile2.log
06/13/2020 13:15:35.142 abd12453 server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2. server 1 log data2.
server2 logfile1.log
06/13/2020 13:25:23.250 abd12453 server 2 log data1. server 2 log data1. server 2 log data1. server 2 log data1. server 2 log data1. server 2 log data1. server 2 log data1. server 2 log data1. server 2 log data1. server 2 log data1. server 2 log
server1 logfile1.log
06/13/2020 13:26:11.142 abd12453 server 1 log data1. server 1 log data1. server 1 log data1. server 1 log data1. server 1 log data1. server 1 log data1. server 1 log data1. server 1 log data1. server 1 log data1. server 1 log data1. server 1 log
【问题讨论】:
-
edit 您的问题包括简洁、可测试的样本输入(2 个或更多
.log文件的几行内容)和预期输出,以便我们为您提供帮助。几乎可以肯定没有必要拥有/使用匹配日期格式的正则表达式。 -
您需要连接所有过滤的日志,然后按适当的列对它们进行排序。由于日期时间格式,数字顺序或字母顺序都对应于时间顺序。您只需要选择升序或降序即可。
-
各位,我很抱歉没有举个例子。你现在可以检查一下吗