Поиск в *.gz архивах без их распаковки
- AJIekceu4
- 01.03.2019
- 7 433
- 0
- 19.03.2019
- 11
- 11
- 0
Часто бывает такая ситуация, что есть острая необходимость найти в логах, которые уже были обработаны и упакованы с помощью 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 - строка, которую мы будем искать
Добавить комментарий