合并并查看旋转和压缩的日志文件

合并并查看旋转和压缩的日志文件

我有一堆来自 Glassfish 应用程序服务器的部分压缩的旋转日志文件(使用自定义 Java 日志记录格式):

/tmp/server.log        /tmp/server.log.13.gz  /tmp/server.log.18.gz  /tmp/server.log.23.gz  /tmp/server.log.28.gz  /tmp/server.log.32.gz  /tmp/server.log.37.gz  /tmp/server.log.4.gz  /tmp/server.log.9.gz
/tmp/server.log.1      /tmp/server.log.14.gz  /tmp/server.log.19.gz  /tmp/server.log.24.gz  /tmp/server.log.29.gz  /tmp/server.log.33.gz  /tmp/server.log.38.gz  /tmp/server.log.5.gz
/tmp/server.log.10.gz  /tmp/server.log.15.gz  /tmp/server.log.20.gz  /tmp/server.log.25.gz  /tmp/server.log.2.gz   /tmp/server.log.34.gz  /tmp/server.log.39.gz  /tmp/server.log.6.gz
/tmp/server.log.11.gz  /tmp/server.log.16.gz  /tmp/server.log.21.gz  /tmp/server.log.26.gz  /tmp/server.log.30.gz  /tmp/server.log.35.gz  /tmp/server.log.3.gz   /tmp/server.log.7.gz
/tmp/server.log.12.gz  /tmp/server.log.17.gz  /tmp/server.log.22.gz  /tmp/server.log.27.gz  /tmp/server.log.31.gz  /tmp/server.log.36.gz  /tmp/server.log.40.gz  /tmp/server.log.8.gz

我如何才能将它们合并为一个文件并按正确的顺序一起查看?看到了一些使用awstats和的方法goaccess,但第一个是 apache 特有的,最后一个似乎没有按预期工作。

有没有办法可以做到这一点而不必提取所有内容?

答案1

我使用 GoAccess 以自定义日志格式(Apache)解析所有压缩文件。

zcat -f /tmp/server.log* | goaccess -a

你可以解析几乎所有的日志日期/格式。请参阅手册页

答案2

用这个:

cd /var/log/...
ls | tac | while IFS= read i; do if [[ $i == *.gz ]]; then gzip -d; else cat; fi < "$i"; done | less

警告.1:当日志文件包含多位数字后缀(如、.2、 ... )时,无法正确排序.10。有人知道吗?

相关内容