我需要解析Apache日志文件以查找特定的可疑模式(如SQL注入)。Apache grep大日志文件
比如我要找id='%20or%201=1;
我使用grep来检查此模式(及其他)日志文件,因为这些日志是巨大的花费相当长的时间量
这里我的命令:
grep 'id=' Apache.log | egrep "' or|'%20"
是否有更好或更快的方法或命令我需要使用来使搜索更快?
我需要解析Apache日志文件以查找特定的可疑模式(如SQL注入)。Apache grep大日志文件
比如我要找id='%20or%201=1;
我使用grep来检查此模式(及其他)日志文件,因为这些日志是巨大的花费相当长的时间量
这里我的命令:
grep 'id=' Apache.log | egrep "' or|'%20"
是否有更好或更快的方法或命令我需要使用来使搜索更快?
对于初学者,您不需要将您的grep
输出输出到egrep
。 egrep
提供grep
的正则表达式解析的超集,所以你可以这样做:
egrep "id='(or|%20)'" apache.log
调用egrep
是相同的调用grep -E
。
这可能会让你的表现有所提升。如果您可以查找固定字符串而不是正则表达式,那也可能有所帮助。你可以告诉grep来寻找一个固定的字符串与-F
选项:
grep -F "id='%20or" apache.log
但使用固定的字符串,你失去了很多的灵活性。
我假设大部分时间都是在从磁盘获取数据时使用的(CPU使用率没有最大化)。那么你不能优化查询。你可以尝试只记录在一个单独的文件有趣的行,虽然....
你在寻找grep -E "id=(' or|'%20)" apache.log
?
让我试试这个 – aki
谢谢它比我的代码少了21分钟 – aki