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

Ответ

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

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

  • 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.

Ответ 18+ 🔞

А, ну это же классика, ёпта! Сидишь такой, как хитрая жопа, и думаешь: «Ну что мне сегодня впендюрить, чтобы всё летало?». А там, бля, овердохуища всего, и каждый день одно и то же. Но без этого никуда, чувак.

Вот смотри, у меня день обычно начинается с того, что я включаю htop или btop. Это, бля, как будто в душу бога мать заглянул — видишь, кто сколько CPU хавает, кто память жрёт. Сразу видно, какой процесс — распиздяй смердящий, который всё тормозит. Без этого — терпения ноль ебать, будешь как слепой щупаться.

Потом, если сеть тупит — сразу nethogs или iftop. Чтобы понять, кто там, сука, такой умный, что весь трафик на себя стянул. Это же волнение ебать, когда сервис лежит, а ты нихуя не понимаешь, в чём дело.

Логи — это отдельная песня. journalctl или tail -f в файл — это как подслушивать, о чём системы между собой шепчутся. А если совсем пиздец, и процесс себя ведёт как ебанько непредсказуемый — тут уже strace в ход идёт. Смотришь, на каком системном вызове он, бля, накрылся медным тазом. Профилирование через perf — это уже для особо изощрённых случаев, когда нужно докопаться до самой сути, до наносекунд.

Если в кубере работаешь — то kubectl это твои руки и ноги. Без него ты просто хуй в пальто, который ничего не может. Им и поды смотришь, и логи, и всё на свете.

Для анализа данных — тут без jq просто никуда. Прилетает тебе JSON от какого-нибудь API, а там, бля, манда с ушами, вложенность на три этажа. jq — это как волшебная палочка, которая эту хуйню разбирает на запчасти. Ну и классика жанра — grep, awk, sed. Это как отвёртка, молоток и пассатижи в мире текста. Без них чувствуешь себя голым.

Сеть копнуть глубже? tcpdump тебе в помощь. Это, бля, как рентген для пакетов. Видишь всё, что по проводам бежит. Правда, иногда смотришь на это и думаешь: «Ядрёна вошь, да кто это придумал?». Но без этого — никак.

Автоматизация — это святое. Простые задачи на Bash — там, где нужно быстро что-то склепать. Но если логика сложная, или с облаком Амазона работать — тут уже Python с boto3 и requests выручает. Писать скрипты, которые сами всё делают — это же кайф, чувак. Сидишь, пьешь кофе, а они там работают.

А чтобы конфиги на сотне серверов не править вручную — Ansible. Иначе с ума сойдёшь. Это как удалённо всем сразу впендюрить одно и то же, чтобы не было разночтений.

Вот, к примеру, реальная ситуация: в кубере какая-то хрень творится, поды падают. Сидишь и подозрение ебать чувствуешь. Первым делом — быстрая проверка:

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

Смотришь — ага, вот этот полупидор frontend-xyz в статусе CrashLoopBackOff. Ну всё, ясно. Дальше смотришь логи:

kubectl logs frontend-xyz-123abc --previous

И там, бля, как обычно: «Connection refused to database». Ну вот, опять сетевая политика криво настроена или БД легла. И пошёл-поехал... Зато быстро локализовал, а не как мартышлюшка по кластеру тыкался.

В общем, инструментов — овердохуища. Главное — знать, какой когда хватать, чтобы не вышло пиздопроебибны. А так — работа кипит.