用于查看日志文件的脚本

时间:2011-12-05 13:53:59

标签: python perl bash shell logging

当我查看服务器上的日志时,我希望能够在深入挖掘之前快速了解我遇到的问题类型。我通常使用下面的单行程序,通过使每行更通用并仅保留唯一的行来减少我需要检查的日志行数。

单行

cat /var/log/apache2/error.log | sed 's/.*] \(.*\)/\1/' | sed 's/[0-9]*//g' | sort | uniq

解释

| sed 's/.*] \(.*\)/\1/':删除最后一个括号组内和之前包含的所有内容,这些内容通常对应于客户端/系统特定信息,例如[Mon Dec 05 12:01:03 2011] [error] [client a.b.c.d]

| sed 's/[0-9]*//g':删除数字

| sort | uniq:只保留不同的行。

为了给您一个想法,在包含大约500行的/var/log/apache2/error.log上,这会过滤掉25行。当然,日志条目越通用/类似,单行有效就越多。

我现在正在寻找的是一个脚本(可能是bashperlpython或其他任何其他内容),可以做同样的事情,但更高级一些为了更有效(例如混淆文件路径,按字母顺序排列的ID ...)和有用(计算每条消息的出现次数,%与日志的总量相比......)。

你知道这样做的脚本吗?

1 个答案:

答案 0 :(得分:4)

看看logwatch。它会向您发送常见日志文件的每日概述。到目前为止,我只将它用于邮件日志,但是它也可以处理apache日志。