gdu: быстрый анализ использования диска на Linux
TL;DR
gdu — лёгкий и очень быстрый анализатор использования диска, написанный на Go. Он особенно эффективен на SSD благодаря параллельному сканированию. Эта статья объясняет, как установить gdu, основные команды и опции, сценарии использования и рекомендации по регулярному аудиту диска.

Ваш жёсткий диск на системе может быстро заполниться, если не отслеживать его состояние регулярно. Сейчас у нас гораздо больше цифровых данных, чем мы можем хранить на устройствах, поэтому проверка свободного места и использования диска — важная задача, которую стоит включить в рутину обслуживания системы.
На Linux доступно несколько утилит для анализа использования диска: df, ncdu, gdu и другие. В этой статье подробно объяснено, что такое gdu, как его установить, как использовать основные команды и какие практики помогут держать диск в порядке.
Что такое утилита gdu
gdu — это анализатор использования диска, написанный на языке Go. Название расшифровывается как Go Disk Usage. В отличие от некоторых традиционных инструментов, gdu фокусируется на скорости и простоте использования.
Коротко про ключевые свойства:
- Быстрая параллельная индексация — использует многопоточность для ускорения сканирования.
- Удобный интерактивный интерфейс в терминале с клавишными командами.
- Поддержка сканирования локальных директорий и примонтированных томов.
gdu особенно хорошо показывает себя на SSD: параллельное чтение значительно уменьшает время сканирования по сравнению с последовательными утилитами.
Производительность: пример сравнения
Ниже приведена таблица со скоростью сканирования 80 ГБ данных на SSD объёмом 500 ГБ. Это именно тот набор данных и условия, которые демонстрировали преимущество gdu в исходном тесте.
| Команда | Скорость без кэша | Скорость с кэшем |
|---|---|---|
| gdu | 6.5s | 2s |
| dua | 8s | 2s |
| godu | 8.5s | 3s |
| nnn -T d | 31s | 3s |
| du -hs | 44s | 4.5s |
| duc index | 47s | 5s |
| ncdu | 54s | 12s |
Важно: это конкретный пример из исходного сравнения; реальные показатели зависят от конфигурации оборудования, типа данных и загрузки системы.
Загрузка и установка gdu на Linux
gdu обычно не предустановлен в дистрибутивах Linux, поэтому его нужно установить вручную. Самый простой способ — скачать сборку с релизов GitHub и поместить в каталог для исполняемых файлов.
Шаги установки (пример для amd64):
curl -L https://github.com/dundee/gdu/releases/latest/download/gdu_linux_amd64.tgz | tar xz
sudo chmod +x gdu_linux_amd64
sudo mv gdu_linux_amd64 /usr/bin/gduПроверьте установку командой:
gdu --versionПример вывода (пример из исходного материала):
Version: v4.9.1
Built time: Fri May 07 05:37:28 PM IST 2021
Built user: dundeeЕсли у вас другой дистрибутив или архитектура (arm64, i386 и т. п.), скачайте соответствующий архив из релизов проекта.
Как пользоваться gdu
Если запустить gdu без аргументов, он просканирует текущую директорию и покажет информацию об использовании местоположений в ней:
gduЧтобы просканировать конкретную папку, укажите её путь:
gdu ./DesktopПримечание: в отличие от команды ls, gdu принимает не более одного аргумента. Если указать несколько директорий, вы увидите ошибку: “Error: accepts at most 1 arg(s), received 2”.
Игнорирование директорий
Чтобы исключить из сканирования отдельные поддиректории, используйте флаг -i (ignore):
gdu /Desktop -i /Desktop/IgnoreМожно перечислить несколько директорий через запятую:
gdu /Desktop -i /Desktop/Ignore,/Desktop/Another-FolderФункции и клавиши управления
Нажмите клавишу вопросительного знака (?) для списка доступных операций в интерактивном режиме.
Полезные клавиши:
- D — удалить выделённый файл или директорию (удаление подтверждается системой).
- V — просмотреть содержимое выделенного файла в просмотрщике.
- ? — показать справку по клавишам.
Для чёрно-белого вывода используйте флаг -c:
gdu -c ./Desktopgdu может сканировать примонтированные тома. Для этого примените флаг -d, чтобы показать информацию о примонтированных дисках:
gdu -dЧтобы запуск был неинтерактивным (только текстовый вывод), используйте флаг -n:
gdu -n ./DesktopОсобые идентификаторы записей в выводе
В таблице ниже перечислены специальные символы, которые gdu отображает перед элементами в списке, и их значения.
| Символ | Значение |
|---|---|
| ! | Ошибка при чтении директории |
| . | Ошибка при чтении поддиректории |
| @ | Сокет или символьная ссылка |
| H | Жёсткая ссылка (hardlink) |
| e | Пустая директория |
Эти метки помогают быстро определить проблему или тип объекта без дополнительной проверки.
Мониторинг дискового пространства с помощью gdu
Регулярный аудит дискового пространства важен для поддержания производительности и предотвращения неожиданного заполнения диска. Рекомендуемые подходы:
- Плановая проверка: запускать быструю проверку gdu -n в ключевых каталогах (дом, /var, /srv) раз в неделю или при подозрениях на утечку места.
- Скрипт-отчёт: запускать gdu в неинтерактивном режиме и отправлять результаты на почту или в систему логирования.
- Чистка по правилам: комбинировать gdu с правилами удаления старых логов, временных файлов и кеша.
Пример одноразового неинтерактивного отчёта, показывающего топ-занимающих директорий:
gdu -n /var | head -n 20Или сохранить отчёт в файл:
gdu -n /home > disk-report-$(date +%F).txtМини-методика быстрого аудита (4 шага)
- Сбор данных: gdu -n /path — получить машинно-читабельный отчёт.
- Идентификация: найти папки сверху по размеру (top N).
- Верификация: посмотреть содержимое и владельцев (ls -lh, du -sh).
- Действие: удалить временные файлы, переместить редко используемые данные, архивировать старые бэкапы.
Альтернативы и когда gdu не подходит
gdu хорош для быстрых интерактивных обзоров и скриптовых запусков, но бывают случаи, когда стоит использовать другие инструменты:
- ncdu — если нужна максимальная портируемость и проверенная утилита с широкой поддержкой.
- du/df — стандартные инструменты для базовых скриптов и POSIX-совместимости.
- инструменты GUI (Baobab, Filelight) — когда нужен визуальный обзор в графической среде.
Когда gdu может дать слабую производительность:
- На сильно фрагментированных HDD параллелизм может не дать большого выигрыша.
- На удалённых файловых системах с высокой задержкой (NFS, CIFS) преимущества уменьшатся.
Рекомендуемые шаблоны и проверки (role-based checklists)
Для сисадмина:
- Добавить cron/systemd таймер для периодического запуска gdu -n по критичным путям.
- Автоматизировать сбор и хранение отчётов (rotação логов).
- Настроить оповещения при превышении порогов использования.
Для обычного пользователя:
- Раз в месяц запускать gdu ./Desktop или gdu ~/ и проверять крупные папки.
- Удалять временные загрузки и старые ISO/архивы.
Для разработчика/DevOps:
- Интегрировать gdu в CI-скрипты для мониторинга объёма артефактов.
- Использовать gdu для анализа размера контейнеров и томов данных.
Сценарий инцидента: план действий при заполнении диска
- Быстрая диагностика: gdu -n / | head -n 30 — найти подозрительные директории.
- Закрыть ненужные процессы, которые пишут в диск.
- Временно очистить директории с логами и кешем (journalctl –vacuum-size, apt clean и т. п.).
- Переместить крупные необязательные файлы на внешний носитель или в облако.
- Проанализировать причины (плановое задание, утечка логов, бэкапы).
- Постоянное решение: добавить мониторинг и ограничение для процессов, создающих большие файлы.
Примеры команд и часто используемые комбинации (cheat sheet)
- Быстрый интерактивный обзор текущей директории:
gdu- Нейтивный неинтерактивный отчёт для автоматизации:
gdu -n /path > /var/log/gdu-$(date +%F).log- Игнорирование нескольких директорий:
gdu /path -i /path/tmp,/path/cache- Чёрно-белый вывод (полезен в скриптах с ограниченным цветом терминала):
gdu -c /pathДиаграмма принятия решения (Mermaid)
flowchart TD
A[Нужен анализ диска?] --> B{SSD или HDD}
B -- SSD --> C[gdu: рекомендован]
B -- HDD --> D[Попробовать gdu; если медленно — ncdu или du]
C --> E{Нужен GUI?}
D --> E
E -- Да --> F[Использовать Baobab / Filelight]
E -- Нет --> G[Оставаться с терминалом]Критерии приёмки
- Команда gdu успешно запускается и показывает список директорий.
- Можно исключить поддиректории через -i и получить ожидаемые результаты.
- Интерактивные клавиши D, V и ? работают в терминале.
- Неинтерактивный режим (-n) генерирует парсируемый отчёт.
Итог и рекомендации
gdu — мощный инструмент для быстрой диагностики использования дискового пространства, особенно полезный на SSD и в сценариях, где важна скорость сканирования. Для регулярного мониторинга используйте gdu в сочетании с плановыми заданиями и простыми правилами чистки. Если вы работаете с медленными носителями или удалёнными файловыми системами, сравните производительность gdu с ncdu и стандартными утилитами du/df.
Важно: не удаляйте системные файлы без проверки владельца и назначения; прежде чем стирать — убедитесь, что файлы не критичны для работы служб.
Короткое резюме и полезные ссылки: установите gdu, прогоните аудит по ключевым папкам, автоматизируйте отчёты и добавьте оповещения при росте использования. Это простой способ предотвратить неожиданное заполнение диска и сохранить производительность системы.