Intereting Posts
Gradle находит неправильный JAVA_HOME, хотя он правильно установлен Передача значений в промежуточные (runtime) запросы ввода команды Windows Правила перенаправления Apache для серверного сервера с помощью WebSockets Отсутствует sal.h при компиляции проекта win32 через mingw прерывистый звук на alsa через 30 минут Прокрутите значения или раздел реестра .. _winreg Python Маршрутизация Laravel + AngularJS Nginx Должен ли я иметь / Когда мне нужен Captcha? Как установить переменную системной среды в Windows XP без использования диалога «Мой компьютер» Что происходит с iteratorом STL после стирания его в VS, UNIX / Linux? Вставьте пробел после запятой, если только это не часть HTML-объекта Как настроить curl для постоянного использования прокси-сервера? Не удается запустить IIS Express 8 в Windows 7 Сервер http: / localhost: 8080 требует имя пользователя и пароль. Сервер говорит: XDB Захват экрана Windows с помощью ffmpeg

Большой файл журнала Apache grep

Мне нужно проанализировать файл журнала Apache, чтобы искать определенные подозрительные шаблоны (например, инъекции SQL).

Например, я ищу id='%20or%201=1;

Я использую grep для проверки файла журнала для этого шаблона (и других), и поскольку эти журналы огромны, требуется большое количество времени

Здесь моя команда:

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

Есть ли лучший или более быстрый метод или команда, которые мне нужны для ускорения поиска?

    Во-первых, вам не нужно grep вывод grep на egrep . egrep обеспечивает надмножество синтаксического анализа регулярного выражения grep , поэтому вы можете просто сделать это:

     egrep "id='( or|%20)'" apache.log 

    Вызов egrep идентичен вызову grep -E .

    Это может привести к небольшому увеличению производительности. Если вы можете искать фиксированные строки, а не регулярные выражения, это также может помочь. Вы можете сказать, что grep ищет фиксированную строку с опцией -F :

     grep -F "id='%20or" apache.log 

    Но при использовании фиксированных строк вы теряете большую гибкость.

    Я предполагаю, что большая часть вашего времени тратится при получении данных с диска (загрузка процессора не превышена). Тогда вы не можете оптимизировать запрос. Вы могли бы попытаться только регистрировать интересные строки в отдельном файле, хотя ….

    Вы ищете grep -E "id=(' or|'%20)" apache.log ?