Твои действия, если какой-либо сервис говорит, что нет места на диске и завершается

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

Ответ

Я действую по стандартному алгоритму диагностики и очистки:

  1. Определение проблемного раздела:
    df -h  # Показывает использование по всем точкам монтирования
  2. Поиск "тяжелых" файлов и каталогов:
    # Поиск в корневой директории
    du -sh /* 2>/dev/null | sort -h
    # Более детальный поиск в проблемном каталоге (например, /var)
    sudo du -ah /var | sort -rh | head -20
  3. Целевая очистка в зависимости от находки:
    • Логи приложений: Запускаю logrotate -f /etc/logrotate.d/<service> или удаляю старые логи: find /var/log -type f -name "*.log*" -mtime +7 -delete.
    • Docker: Очищаю неиспользуемые данные: docker system prune -af --volumes.
    • Кэш пакетного менеджера: apt-get clean или yum clean all.
    • Временные файлы: rm -rf /tmp/* (с осторожностью).
  4. Проактивные меры: После решения проблемы настраиваю мониторинг (например, алерт в Prometheus при заполнении диска >85%) и автоматизирую очистку через cron-скрипты или инструменты вроде logrotate с политикой ротации.