要跟踪多个日志文件,我使用:
tail /path/to/logs/*.log
要跟踪压缩的日志文件:
zcat /path/to/mylog.1.gz | tail
但我想跟踪多个压缩日志文件,因为以下输出将不可读:
tail /path/to/logs/*.gz
答案1
通过读取zcat
每个文件名的输出(无通配符)从命名管道使用bash
的过程替换语法...例如像这样:
tail <(zcat /path/to/mylog.1.gz) <(zcat /path/to/mylog.2.gz) ...
或者使用for
循环进行 shell 的文件名通配...例如像这样:
for f in /path/to/logs/*.gz; do echo "====> $f"; zcat "$f" | tail; done
答案2
这对你有用吗?
ls -1 /path/to/logs/*.log.gz | xargs -i bash -c "zgrep -H . {} | tail -2 "