3

I have a bunch of partly compressed rotated logfiles from a Glassfish application server (using a custom Java logging format):

/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

How do I view them altogether as if they are merged into a single file - in the correct order? Saw some approaches using awstats and goaccess, but the first one is apache specific and the last one does not seem to work as expected.

Is there a way to do it without having to extract everything?

2 Answers 2

2

I use GoAccess to parse all my compressed files using a custom log format (Apache).

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

You can parse pretty much all log date/formats. See man page.

0

Use this:

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

Caveat: Does not order log files correctly when there are multi-digit suffixes like .1, .2, ... , .10 involved. Does anyone have an idea for that?

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .