Для чего используется команда grep в контексте DevOps?

«Для чего используется команда grep в контексте DevOps?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В DevOps grep — это основной инструмент для анализа логов, конфигураций и вывода команд. Я использую его ежедневно для быстрой диагностики проблем.

Типичные сценарии использования:

  • Поиск ошибок в логах: grep -i -n "error|exception|fatal" /var/log/app/application.log
  • Фильтрация вывода команд: kubectl get pods --all-namespaces | grep -v Running (показать все поды, кроме работающих)
  • Рекурсивный поиск в коде/конфигах: grep -r "DATABASE_URL" ./config/ — найти все упоминания строки подключения.
  • Анализ истории команд: history | grep "ssh"

Ключевые опции для DevOps:

  • -A 5 -B 5: Показать 5 строк после и до совпадения — критично для понимания контекста ошибки.
  • -c: Подсчитать количество совпадений — полезно для метрик.
  • -E: Использовать расширенные регулярные выражения (например, для поиска по паттерну IP-адреса).

Пример из практики: При инциденте с падением сервиса первым делом ищу в логах последние ошибки: tail -100 /var/log/nginx/access.log | grep " 500 ".