Какими утилитами и инструментами ты пользуешься в повседневной работе на Linux?

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

Ответ

Мой рабочий день строится вокруг набора утилит для разных задач:

Для оперативного мониторинга и отладки:

  • htop / btop — мониторинг ресурсов (CPU, память, процессы).
  • nethogs, iftop — анализ сетевого трафика.
  • journalctl и tail -f — просмотр логов в реальном времени.
  • strace / perf — профилирование и отладка процессов.
  • kubectl (если работаю с K8s) — основной инструмент для управления кластером.

Для анализа и обработки данных:

  • jq — незаменим для парсинга и форматирования JSON (например, ответов от API).
  • grep, awk, sed — классика для обработки текста в конвейерах (pipes).
  • tcpdump и wireshark (в CLI режиме) — для глубокого анализа сетевых пакетов.

Для автоматизации и управления инфраструктурой:

  • Скрипты: Пишу на Bash для простых задач и на Python (с библиотеками boto3, requests) для более сложной логики, например, для автоматического сбора метрик или управления облачными ресурсами.
  • Конфигурация: Использую Ansible для управления конфигурацией множества серверов.

Пример: Чтобы быстро найти все failed-поды в Kubernetes и увидеть причину, я часто использую связку:

kubectl get pods --all-namespaces --field-selector=status.phase!=Running | grep -v "Completed"

А затем детально смотрю логи конкретного пода с помощью kubectl logs <pod_name> --previous.