根据特定字符串搜索和排序错误日志

根据特定字符串搜索和排序错误日志
  1. 如何搜索所有的errors.zip以及errors.log文件并按“Error”字符串过滤并按日期排序?

  2. 那么错误总数呢?

要求:我的Linux服务器上安装了3个组件,例如comp1、comp2和comp3。每个组件都有自己的日志目录。每个日志目录包含以下文件 Exception.log connection.log comp1.log 以及一些 *.zip 文件。我想搜索它们,根据日期对它们进行排序,并需要显示错误计数的总数。

错误日志

2015-05-15 05:59:03,316 | 73002 |错误 | JomaManagerThread 运行 |清除 JOMA 警报时出错

请让我知道更多信息

答案1

由于您似乎不需要可用于-p输出 zip 文件内容的文件名:

(for i in ./*.zip; do unzip -p "$i"; done; cat ./*.log) |
   grep -F ERROR | sort 

或者如果文件 error.zip 到处都是:

(find . -type f -name "*.zip" -exec unzip -p {} \;
 find . -type f -name "err*.log" -exec cat {} + ) |
   grep -F ERROR | sort

这消除了 zip 文件名和解压缩提取的特定内容文件名,以及日志文件名。如果你需要这些信息,我会为该任务编写一个 python 程序,将文件名插入到找到的每一行中的某个位置(当然不是在日期之前)。您可以使用标准zipfile模块来处理 zip 文件的内容,而无需先提取文件,并将程序写入 stdout 以通过管道传输到sort

相关内容