Regex 正在分析Apache错误日志以查找唯一错误
我有一些难以控制的apache错误日志,我想通过这些日志进行解析并获得唯一的错误Regex 正在分析Apache错误日志以查找唯一错误,regex,linux,apache,parsing,logging,Regex,Linux,Apache,Parsing,Logging,我有一些难以控制的apache错误日志,我想通过这些日志进行解析并获得唯一的错误 [Fri Sep 21 06:54:24 2012][error][client xxx.xxx.xxx.xxx]PHP致命错误:,推荐人: 我想我只想在“PHP致命”部分切掉这些行,放弃上半部分,通过uniq运行下半部分。我的目标是识别所有的错误,但是由于重复的错误太多,有太多的行需要手动查看 实现这一点的最佳方法是什么?尝试grep-o'\[error\].$'文件|排序| uniq 这将只显示与正则表达式匹配
[Fri Sep 21 06:54:24 2012][error][client xxx.xxx.xxx.xxx]PHP致命错误:,推荐人:
我想我只想在“PHP致命”部分切掉这些行,放弃上半部分,通过uniq运行下半部分。我的目标是识别所有的错误,但是由于重复的错误太多,有太多的行需要手动查看
实现这一点的最佳方法是什么?尝试
grep-o'\[error\].$'文件|排序| uniq
这将只显示与正则表达式匹配的内容(而不是包含匹配项的整个行)
然后sort将相似的条目放在一起,这样uniq就可以确保没有重复的条目
如果要在排序/统一之前删除客户端位,请使用
grep-o'\[error\].$'文件| sed's/\[client.\?\]/'| sort | uniq
与sed:
sed -r 's/(.*)(PHP Fatal error)/\2/' logfile | sort -u
要分析
/var/log/apache2/error.log
请使用
sed 's^\[.*\]^^g' /var/log/apache2/error.log | uniq -c | sort -n
这将
如果创建新日志,可以事先配置php: 在php.ini中设置
=On
,或添加ini\u集('ignore-repeated-errors',1)代码>到您的php脚本
这将阻止php多次记录错误,即由同一脚本中的同一行引起的错误消息
资料来源:
(但这有助于分析现有日志)正则表达式解析字符串可能是错误。*
(在regex101.com上测试)
下面的命令将确保搜索时不区分大小写
grep -ori 'ERROR.*$' filename | sort | uniq