如何搜索所有的errors.zip以及errors.log文件并按“Error”字符串过滤并按日期排序?
那么错误总数呢?
要求:我的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