Apache grep 大日志文件

标签 apache command-line grep logging

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

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

我正在使用 grep 来检查此模式(和其他模式)的日志文件,并且由于这些日志很大,因此需要很长时间

这是我的命令:

grep 'id=' Apache.log | egrep "' or|'%20"

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

最佳答案

对于初学者来说,您不需要将 grep 输出通过管道传输到 egrepegrep 提供了 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/

相关文章:

python - 如何调试 apache 重新启动 mod_wsgi 进程?

java - 在 Live 服务器上托管 java webservice

asp.net - Mono 2.11 与 nginx 或 apache

python - 从 python 打开文件

regex - perl - 提取字符串列表

php - 搜索引擎友好的 URL

linux - 等同于 .cmd 中的 find -o (shell)

command-line - 使用 sed (或其他命令行)将一组字符替换为不同的字符集

linux - 当某些脚本在其中执行 grep 时编辑文件是否有任何影响

linux - 比较两个文件中的列并打印不匹配