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

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

Ответ

Для мониторинга состояния Linux-сервера я регулярно использую следующий набор команд:

Мониторинг ресурсов:

  • top / htop — просмотр процессов, загрузки CPU и использования памяти в реальном времени.
  • uptime — показывает время работы системы и среднюю нагрузку (load average) за 1, 5 и 15 минут.
  • free -h — отображает информацию об использовании оперативной памяти и swap.
  • df -h — проверяет свободное место на всех смонтированных файловых системах.

Сеть и порты:

  • ss -tulnp (предпочтительнее netstat) — показывает все слушающие порты и связанные с ними процессы.
  • nload или iftop — мониторинг сетевого трафика по интерфейсам в реальном времени.

Диагностика ввода/вывода и производительности:

  • iostat -x 1 — статистика по загрузке дисковых подсистем, ключевые метрики: %util и await.
  • vmstat 1 — информация о процессах, памяти, свопе и активности CPU.

Анализ логов:

  • dmesg -T | tail -20 — просмотр последних сообщений ядра для диагностики аппаратных ошибок или проблем с драйверами.
  • journalctl -xe --since "5 minutes ago" — просмотр системных логов (для дистрибутивов с systemd).

Пример комплексной проверки:

# Быстрая проверка "здоровья" сервера
echo "=== Load Average ===" && uptime
echo "n=== Memory Usage ===" && free -h
echo "n=== Disk Space ===" && df -h /
echo "n=== Top Processes ===" && ps aux --sort=-%cpu | head -10