Поиск в *.gz архивах без их распаковки

  • 476
  • 0
  • 100,00%
  • 1

Часто бывает такая ситуация, что есть острая необходимость найти в логах, которые уже были обработаны и упакованы с помощью logrotate в gzip архивы какую-либо информацию. Например, для поиска в логах nginx или apache действий определенного IP адреса. Чтобы не распаковывать каждый архив и потом искать в нем нужную нам информацию, можно воспользоваться утилитой zgrep.


Поиск в конкретном gz архиве без распаковки

Если вам необходимо произвести поиск в определенном архиве, но без его распаковки, то это можно сделать следующей командой:

zgrep 'string_to_search' /var/log/nginx/sysadmin.ru-access.log.28.gz

string_to_search - строка, которую мы будем искать
/var/log/nginx/sysadmin.ru-access.log.28.gz - путь к конкретному gz файлу, в котором мы будем производить поиск

Поиск во всех gz архивах без распаковки

Если вам необходимо произвести поиск в множестве архивов, при этом не распаковывая их, то делается это следующей командой:

find /var/log/nginx/ -name '*.gz' -exec zgrep -- 'string_to_search' {} +

/var/log/nginx/ - каталог, в котором находятся архивы
'*.gz' - все архивы gz
string_to_search - строка, которую мы будем искать

Поиск только в определенных gz архивах без распаковки

Если вам необходимо произвести поиск только в определенных gz архивах, например, лог-файлах содержащих в своем названии фразу error, то делается это следующей командой:

find /var/log/nginx/ -name '*error*.gz' -exec zgrep -- 'string_to_search' {} +

/var/log/nginx/ - каталог, в котором находятся архивы
'*error*.gz' - все архивы gz, которые содержат в названии слово error
string_to_search - строка, которую мы будем искать



Добавить комментарий

Ваш e-mail не будет опубликован.

Напоминаем Вам, что Ваше сообщение будет опубликовано только после проверки администратором сайта. Обычно это занимает 1-2 рабочих дня.