Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
LOG_SEARCH_GREP Linux / DevOps

Команда grep в Linux для новичков: быстрый поиск ошибок (Error) в логах

Обновлено: 26.08.2026  ·  Официальная база знаний

Файл системного журнала или лог веб-сервера access.log весит сотни мегабайт, содержит миллионы строк, и администратору нужно за секунду найти конкретное сообщение об ошибке, аварийный сбой программы или действия определенного IP-адреса.

Что такое grep?

grep — это мощнейшая утилита поиска в Linux, которая сканирует текст строка за строкой и мгновенно выводит на экран только те строки, которые содержат заданное ключевое слово.


Топ-5 самых полезных комбинаций grep:

1. Простой поиск без учета регистра букв (флаг -i)

Найдем слово «error», даже если в логе написано «ERROR» или «Error»:

grep -i "error" /var/log/syslog

2. Поиск по всем файлам в папке рекурсивно (флаг -r)

Найти, в каком именно конфиге внутри папки /etc/nginx/ упоминается домен itstm.ru:

sudo grep -rn "itstm.ru" /etc/nginx/

Флаг -n дополнительно покажет точный номер строки в файле!


3. Показ контекста: строки ДО и ПОСЛЕ ошибки (флаги -B, -A, -C)

Чтобы понять причину сбоя, нужно видеть несколько строк, которые происходили перед ошибкой:

grep -i -C 3 "exception" /var/log/app/error.log

Флаг -C 3 (Context) выведет саму строку с ошибкой, а также 3 строки ДО нее и 3 строки ПОСЛЕ.


4. Фильтрация живого потока логов в реальном времени (tail -f + grep)

Смотрите только ошибки по мере их поступления в журнал:

sudo tail -f /var/log/nginx/error.log | grep --line-buffered -i "critical"

5. Исключение лишнего мусора (инверсия с флагом -v)

Показать все строки лога, кроме стандартных проверок healthcheck:

grep -v "healthcheck" access.log
Практический опыт инженера: Не используйте команду 'cat file.log | grep error' — это лишняя трата ресурсов процессора на передачу через пайп (Useless Use of Cat). Всегда передавайте файл аргументом в сам grep: 'grep error file.log'.

Частые вопросы (FAQ)

Как посчитать общее количество найденных строк с ошибками?

Используйте флаг -c (count): grep -c -i 'error' /var/log/syslog.

Как искать точное совпадение слова целиком, а не части слова?

Используйте флаг -w (word): grep -w 'warn' file.log (найдет слово 'warn', но проигнорирует 'warning').

Можно ли искать сразу несколько разных слов одновременно?

Используйте расширенный поиск egrep или grep -E: grep -E 'error|warning|critical' /var/log/syslog.

Как быстро найти ошибки в сжатых архивных логах .log.gz?

Используйте специальную утилиту zgrep (она читает zip-файлы на лету без распаковки): zgrep -i 'fatal' /var/log/syslog.2.gz.