Назад | Перейти на главную страницу

Просматривать записи access_log только с определенного IP-адреса в SSH

У меня большой многолетний журнал access_log, и мне нужно просмотреть все записи для определенного IP-адреса из SSH. Формат:

111.111.111.111 - ...

222.222.222.222 - ...

111.111.111.111 - ...

Как мне просматривать только записи журнала для 111.111.111.111? Я использую CentOS.

Grep для этого - самый простой способ.

grep "^111\.111\.111\.111\b" access_log

Мой обязательный GNU parallel ответ:

cat access_log | parallel --pipe -k grep ^111.111.111.111

Обратите внимание, что для работы требуется относительно последняя версия parallel. Самое интересное в этом подходе - он разбивает файл на несколько фрагментов и запускает grep для этих фрагментов параллельно вместо того, чтобы запускать grep для всего файла. В -k опция гарантирует, что заказ останется правильным.

Для очень большого файла, который потенциально может быть намного быстрее, чем простой grep. Во всяком случае, есть что попробовать.