我需要解析 Apache 日志文件以查找特定的可疑模式(例如 SQL 注入(inject))。
例如,我正在寻找 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
相同。
这可能会让你的性能有所提高。如果您可以查找固定字符串而不是正则表达式,这可能也会有所帮助。您可以使用 -F
选项告诉 grep 查找固定字符串:
grep -F "id='%20or" apache.log
但是使用固定字符串会失去很多灵 active 。
关于Apache grep 大日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8168332/