查看Apache的日志文件时,会重复出现许多错误消息。我想找出哪些错误消息是最常见的,哪些是唯一的。
我想要一个简单的脚本,可以为我提供许多不同的独特行。
我知道Perl / Python / etc,但是我更喜欢使用内置工具,例如cut
/ find
/ grep
/ sed
等。
我可以使用获得一个简单的条目列表sed
。下面显示了唯一的错误消息列表:
$ sed -e "s/\[.*\]\([^:]*\)\(.*\)/\1/" error.sml.log | sort -u
Apache configured -- resuming normal operations
client denied by server configuration
Digest
File does not exist
request failed
这可以计算出现的次数。它只是没有用,因为它没有显示计数与什么相关:
$ sed -e "s/\[.*\]\([^:]*\)\(.*\)/\1/" error.sml.log | sort -u | xargs -I{} grep -oc {} error.sml.log
1
3886
2
6091
20
我希望输出看起来像这样:
1 Apache configured -- resuming normal operations
3886 client denied by server configuration
2 Digest
6091 File does not exist
20 request failed