Apache grep大日志文件

aki*_*aki 13 apache logging command-line grep

我需要解析Apache日志文件以查找特定的可疑模式(如SQL注入).

比如我正在寻找 id='%20or%201=1;

我正在使用grep来检查日志文件中的这个模式(以及其他模式),因为这些日志很大,需要很长时间

这是我的命令:

grep 'id=' Apache.log | egrep "' or|'%20"
Run Code Online (Sandbox Code Playgroud)

我需要使用更好或更快的方法或命令来加快搜索速度吗?

lar*_*sks 22

对于初学者,您不需要grep输出输出egrep. egrep提供了grep正则表达式解析的超集,所以你可以这样做:

egrep "id='( or|%20)'" apache.log
Run Code Online (Sandbox Code Playgroud)

呼叫egrep与呼叫相同grep -E.

这可能会让你的性能提升一点.如果您可以查找固定字符串而不是正则表达式,那么这也可能有所帮助.您可以告诉grep使用以下-F选项查找固定字符串:

grep -F "id='%20or" apache.log
Run Code Online (Sandbox Code Playgroud)

但是使用固定字符串会失去很多灵活性.