Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

Linux / DevOps

Как узнать свободное место на диске в Linux: команды df -h и du -sh

Обновлено: 26.08.2026 · Официальная документация ↗

Почему переполняется диск в Linux и чем это грозит

Когда на сервере Linux заканчивается свободное дисковое пространство (Disk Full / No space left on device), операционная система и сервисы начинают экстренно падать. База данных MySQL/PostgreSQL останавливается, веб-сервер перестает отдавать страницы, а системные демоны не могут записать даже строчку в журнал логов. Часто новичку сложно понять, сколько места осталось и какая именно папка «сожрала» всю память.

Основные утилиты для проверки диска

КомандаЧто делаетАналог в Windows
df -hПоказывает общий размер разделов диска и сколько процентов свободно в удобном виде (ГБ/МБ).Окно «Мой компьютер» со списком дисков C: и D:
du -sh /*Считает реальный вес каждой папки в указанной директории.Свойства папки -> Размер на диске

Пошаговый поиск пожирателей дискового пространства

Шаг 1: Проверка общего свободного места (df -h)

Подключитесь к серверу по SSH и введите базовую команду:

df -h

Флаг -h означает Human-readable (выводить гигабайты G и мегабайты M вместо непонятных байтов). Обратите внимание на строку с точкой монтирования Mounted on: / (корневой раздел). Если в колонке Use% стоит 95-100% — сервер в критическом состоянии.

Шаг 2: Поиск самых тяжелых папок в корне системы (du)

Чтобы понять, какая директория заняла диск, выполните команду расчета размера каталогов первого уровня:

sudo du -sh /* 2>/dev/null | sort -hr | head -n 10

Пояснение: мы считаем вес папок, перенаправляем ошибки доступа в пустоту, сортируем по убыванию (sort -hr) и показываем топ-10 самых тяжелых директорий (head -n 10).

Шаг 3: Углубление в проблемную папку

Если тяжелой оказалась, например, папка /var (где часто лежат логи или базы данных), перейдите внутрь и повторите команду:

sudo du -sh /var/* 2>/dev/null | sort -hr | head -n 10

Если вы видите, что папка /var/log весит десятки гигабайт, очистите старые архивы логов командой:

sudo journalctl --vacuum-size=200M

Типовые ошибки администраторов

  • Использование rm для открытого активного лог-файла: Если удалить файл лога (например, rm access.log), который прямо сейчас пишет Nginx, место на диске НЕ освободится, пока служба не перезапустится. Правильно очищать файл командой обнуления: > /var/log/nginx/access.log.
  • Забытые inodes (файловые дескрипторы): Иногда команда df -h показывает 50% свободного места, но создать файл нельзя. Проверьте свободные иноды командой df -i — миллионы мелких файлов сессий PHP могут забить таблицу дескрипторов.
Сервер регулярно забивается неизвестными файлами или база данных встает из-за нехватки диска?
Команда ITSTM настроит автоматическую ротацию логов (logrotate), настроит мониторинг Zabbix/Prometheus с алертами в Telegram и выделит безопасные квоты диска.
💡 Практика специалистов: Если у вас на сервере крутится Docker, 90% внезапного переполнения диска вызывают не логи системы, а скопившиеся старые слои образов и неиспользуемые контейнеры в /var/lib/docker. Регулярно запускайте безопасную чистку 'docker system prune -a --volumes'.

Частые вопросы (FAQ)

Что означает вывод 'tmpfs' в списке команды df -h?

tmpfs — это виртуальная файловая система, расположенная в оперативной памяти (RAM). Она используется системой для временных быстрых файлов и очищается при перезагрузке.

Почему команда du -sh показывает меньше места, чем занято по данным df -h?

Такое бывает, если удаленный файл все еще удерживается запущенным процессом. Процесс продолжает писать в дескриптор, место заблокировано. Найти такие файлы можно командой: lsof | grep deleted.

Как быстро найти 5 самых больших файлов на всем сервере?

Выполните команду: sudo find / -type f -exec du -h {} + 2>/dev/null | sort -rh | head -n 5

Безопасно ли удалять файлы из папки /tmp?

Да, в /tmp хранятся временные файлы. Однако удалять их лучше специальной утилитой tmpwatch или системным скриптом очистки, чтобы не повредить сокеты запущенных прямо сейчас служб.

Полезные материалы
Рекомендуем