Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

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

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.

Полезные материалы
Рекомендуем