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

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

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

Linux / DevOps

Как найти самые большие файлы и папки в Linux: команды du и sort

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

Куда делось свободное место на диске?

Команда df -h показывает 100% заполнение корневого раздела (/dev/mapper/ubuntu--vg-ubuntu--lv 100%), сайты выдают ошибку базы данных Disk full, а консоль блокирует сохранение файлов. Чтобы освободить память, необходимо быстро найти конкретную папку или файл-гигант (разросшийся лог, старый дамп базы или забытый архив), который забил файловую систему.

Сравнение утилит анализа диска:

УтилитаСкоростьНаглядностьНаличие в системе
df -hМгновенноПоказывает только общие разделы дисковВстроена везде
du + sortБыстроВыводит точный список самых тяжелых папокВстроена везде
ncduОчень быстроИнтерактивный псевдографический интерфейс с навигациейТребует установки через apt

Готовые команды поиска тяжелых файлов

  1. 1. Топ-10 самых тяжелых папок в текущей директории

    Выполните классическую связку команд:

    sudo du -hs * | sort -rh | head -n 10

    Разбор параметров:
    du -hs * — считает размер каждого элемента в человекочитаемом виде (Human-readable: M - Мегабайты, G - Гигабайты).
    sort -rh — сортирует список по убыванию (самые тяжелые вверху).
    head -n 10 — оставляет на экране ровно первые 10 позиций.

  2. 2. Поиск файлов размером более 500 Мб по всему серверу

    Команда find мгновенно найдет гигантские файлы в обход мелких файлов:

    sudo find / -type f -size +500M -exec ls -lh {} + 2>/dev/null | awk '{ print $9 ": " $5 }'
  3. 3. Использование интерактивной утилиты ncdu (Рекомендуется)

    Самый удобный способ для новичков:

    # Устанавливаем утилиту:
    sudo apt install ncdu -y
    
    # Запускаем анализ корневой системы:
    sudo ncdu / --exclude /proc --exclude /sys

    Используйте стрелочки клавиатуры для входа в папки и клавишу d для быстрого удаления ненужного файла прямо из меню.

💡 Практика специалистов: Никогда не запускайте обычный du -sh /* без исключения виртуальных директорий /proc и /sys. Виртуальная файловая система ядра proc может зациклить сканер или выдать некорректный размер оперативной памяти сервера.

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

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

Это происходит, если тяжелый файл (например, лог Nginx) был удален через rm, но процесс веб-сервера все еще держит его открытым в памяти. Выполните sudo lsof | grep deleted, найдите PID процесса и перезапустите службу.

Где чаще всего прячется мусор на серверах Linux?

В 90% случаев это: /var/log/ (неротированные системные логи), /var/lib/docker/ (старые слои образов и контейнеры) и /tmp/ (кэш сессий и временные дампы).

Как очистить файл лога, не удаляя сам файл и не ломая службу?

Используйте обнуление через знак редиректа: sudo truncate -s 0 /var/log/nginx/access.log или : > /var/log/nginx/access.log.

Как безопасно выйти из программы ncdu?

Нажмите латинскую клавишу q на клавиатуре.

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