Гид по технологиям

duf — удобная утилита для анализа использования диска в Linux

7 min read Linux CLI Обновлено 01 Dec 2025
duf — анализ диска в Linux
duf — анализ диска в Linux

duf — это современная командная утилита для просмотра использования дискового пространства и свободного места в Linux. Она сочетает в себе преимущества классических df и du, добавляет фильтрацию, сортировку и экспорт в JSON, и при этом даёт читабельный цветной вывод прямо в терминале.

Что такое duf

duf, сокращение от Disk Usage/Free, — свободная утилита с открытым исходным кодом. Она предназначена для быстрой проверки точек монтирования, устройств и общего распределения свободного и занятого пространства. По сути duf объединяет возможности df и отдельных отчётов du в одной команде и оформляет вывод в удобную табличную форму.

Ключевая идея

  • Просмотр свободного и занятого места в понятном виде.
  • Фильтрация и сортировка прямо из команды.
  • Экспорт в JSON для автоматизации и интеграции.

Важно

duf не изменяет файловую систему. Это инструмент только для чтения состояния дисков.

Зачем использовать duf

Основные преимущества duf перед df и простыми подсчётами du:

  • Цветной и понятный вывод. Таблицы читаются быстрее.
  • Настраиваемая тема и терминальный стиль.
  • Фильтрация по типам таблиц, файловым системам и точкам монтирования.
  • Сортировка по любым колонкам; можно выбирать видимые столбцы.
  • Экспорт результата в JSON для интеграции с мониторингом или скриптами.

Когда duf особенно полезен

  • Быстрая диагностика на сервере при нехватке места.
  • Единообразный вывод для скриптов и отчётов.
  • Для новых пользователей Linux, которым удобнее видеть таблицы, чем строки df.

Как установить duf на Linux

Ниже описаны распространённые способы установки. Выберите тот, который удобен для вашей системы.

Установка из DEB или RPM пакета

Разработчики публикуют готовые пакеты в разделе Releases на GitHub. Выберите файл с расширением .deb для Debian/Ubuntu и производных, или .rpm для RHEL, Fedora, CentOS и их производных.

Если вы предпочитаете скачивать через терминал, проверьте наличие wget:

wget --version

Если wget отсутствует, установите его через пакетный менеджер вашей системы.

Пример загрузки пакета для Debian-подобных систем:

wget https://github.com/muesli/duf/releases/download/v0.6.2/duf_0.6.2_linux_amd64.deb

Для RHEL-подобных систем:

wget https://github.com/muesli/duf/releases/download/v0.6.2/duf_0.6.2_linux_amd64.rpm

Установка из каталога Загрузок через графический установщик также возможна. В графическом окружении щёлкните по файлу и выберите систему установки пакета.

Установка через CLI для Debian-подобных:

sudo dpkg -i duf_0.x.x_linux_amd64.deb

Для RHEL-подобных:

sudo rpm -i duf_0.x.x_linux_amd64.rpm

Пользователи Arch Linux могут установить через AUR с помощью помощника, например:

yay -S duf

Установка через snap

Если у вас установлен snap, можно поставить официальный snap-пакет:

sudo snap install duf-utility

Проверьте работу snap с помощью:

snap --version

Сборка из исходников

duf написан на Go. Если вы хотите собрать утилиту самостоятельно, убедитесь, что у вас установлен Go и настроено окружение GOPATH. Команды для сборки:

git clone https://github.com/muesli/duf.git
cd duf
go build

После сборки вы получите исполняемый файл в текущем каталоге; переместите его в каталог из PATH, например /usr/local/bin.

Быстрый старт. Как использовать duf

После установки запустите в терминале:

duf

Команда выведет список устройств и точек монтирования с колонками типа SIZE, USED, AVAIL, USE% и т.д.

Вывод команды duf в терминале

Ограничение вывода на конкретные точки монтирования

Чтобы показать информацию только для корня и домашней директории:

duf /
duf /home

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

duf --all

Фильтрация по таблицам, файловым системам и точкам монтирования

duf поддерживает фильтры типа –only и –hide для таблиц, а также –only-fs, –hide-fs, –only-mp, –hide-mp.

Показать только локальные и сетевые устройства:

duf --only local,network

Скрыть локальные и сетевые устройства:

duf --hide local,network

Показать только конкретные типы файловых систем:

duf --only-fs tmpfs,vfat

Скрыть определённые файловые системы:

duf --hide-fs tmpfs,vfat

Показать только точки монтирования / и /home:

duf --only-mp /,/home

Скрыть эти точки монтирования:

duf --hide-mp /,/home

Фильтрация результатов duf

Сортировка и выбор колонок

Можно сортировать по колонкам, например по размеру:

duf --sort size

Показать только конкретные столбцы, например SIZE и AVAIL:

duf --output size,avail

Сортировка по размеру в duf

Просмотр информации об inode

По умолчанию duf показывает блоки. Чтобы увидеть использование inode-ов, используйте:

duf --inodes

Экспорт в JSON

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

duf --json

Экспорт результата duf в формат JSON

Вывод можно перенаправить в файл:

duf --json > /tmp/duf-report.json

Тема терминала

duf обычно автоматически подбирает тему. Если определение не сработало, принудительно задайте светлую или тёмную тему:

duf --theme light

duf --theme dark

Помощь по команде

Если нужно узнать доступные опции, выполните:

duf --help

Справка по duf

Практические примеры использования

Пример 1. Быстрая проверка состояния перед резервным копированием:

duf --only local --output size,used,avail,mountpoint

Пример 2. Сравнение разных файловых систем и экспорт для отчёта:

duf --only-fs ext4,xfs --json > report.json

Пример 3. Автоматическая тревога в скрипте при заполнении больше 90%:

if [ "$(duf --json | jq '.[] | select(.use_percent >= 90)')" ]; then
  echo 'Внимание: заполнение диска больше 90%'
  # Дополнительные действия: очистка, оповещение, ротация логов
fi

Совет

Используйте jq для парсинга JSON, полученного от duf, и интеграции в цепочки обработки.

Чек-листы ролей

Системный администратор

  • Проверить точки монтирования на всех критических серверах.
  • Собрать JSON-отчёты и загрузить в систему мониторинга.
  • Настроить оповещения при заполнении выше порога.

Разработчик

  • Перед деплоем проверить свободное место в каталогах, где будут размещены артефакты.
  • Использовать duf в CI-пайплайне для валидации свободного места.

Десктоп-пользователь

  • Визуально оценить, какие разделы заполнены.
  • Найти большие точки монтирования и удалить лишние файлы.

Критерии приёмки

Если вы интегрируете duf в процесс автоматизации, убедитесь, что:

  • duf установлен на целевых серверах и доступен в PATH.
  • JSON-вывод корректно парсится и не содержит ошибок.
  • Скрипты обработали случаи отсутствия команд и возвращают понятные коды ошибок.
  • Порог заполнения и действия при срабатывании задокументированы.

Runbook при проблеме с заполнением диска

  1. Оповещение: получать json-отчёт от duf с отметкой точки монтирования.
  2. Первичная диагностика:
duf --only-mp /var --output size,used,avail,mountpoint --json > /tmp/var.json
jq . /tmp/var.json
  1. Скорое решение: освободить место в логах, очистить временные каталоги или удалить старые резервные копии.
  2. Продолжение: запланировать аудит и добавить периодические проверки.
  3. Откатные действия: если автоматическая очистка привела к проблемам, восстановить из бэкапа.

Когда duf не подходит

  • При необходимости анализа содержимого каталогов на уровне файлов и подпапок лучше подойдёт ncdu.
  • Для низкоуровневого восстановления или исправления метаданных используйте специализированные утилиты для конкретной файловой системы.
  • Если доступ невозможен или файловая система повреждена, duf покажет ограниченную информацию.

Альтернативы и сравнение

Короткое сравнение инструментов:

  • df — стандартный инструмент, показывающий файловые системы, прост в использовании.
  • du — оценивает размер директорий; полезен для поиска «тяжёлых» каталогов.
  • ncdu — интерактивный TUI для исследования использования по каталогам.
  • lsblk — для детального просмотра блоковых устройств и их связей.
  • gdu — быстрый аналог du на Go с удобным интерфейсом.

Матрица сравнения

  • Читаемость: duf > df
  • Гибкость фильтров: duf > df
  • Интерактивный анализ папок: ncdu > duf
  • Экспорт для автоматизации: duf имеет преимущество

Ментальные модели и полезные понятия

  • Блоки и inode: блоки хранят данные, inode содержат метаданные про файлы.
  • Таблицы: duf группирует устройства по таблицам вроде local, network, loopback.
  • Точки монтирования: область, где файловая система становится видимой в дереве каталогов.

Короткий словарь

  • inode — структура, описывающая файл.
  • mount point — точка монтирования, где доступна файловая система.
  • filesystem — тип файловой системы, например ext4, xfs, vfat.

Мини-методология для регулярных проверок

  1. Добавьте ежедневный cron или systemd timer, который собирает duf –json.
  2. Парсите JSON с помощью jq или любым способом в систему мониторинга.
  3. Задайте оповещения по порогам использования и по inode.
  4. Проводите ежемесячный аудит больших каталогов с помощью ncdu.

Пример systemd timer

# /etc/systemd/system/duf-report.service
[Unit]
Description=Generate duf JSON report

[Service]
Type=oneshot
ExecStart=/usr/local/bin/duf --json > /var/log/duf/report-$(date +%F).json
# /etc/systemd/system/duf-report.timer
[Unit]
Description=Daily duf report

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target

Безопасность и конфиденциальность

  • duf сам по себе читает только информацию о точках монтирования и использовании.
  • Выгрузка в JSON может содержать имена точек монтирования — аккуратно храните такие отчёты.
  • Не публикуйте отчёты, которые раскрывают структуру серверов без необходимости.

Миграция и совместимость

  • Версии пакетов отличаются лишь в бинарных релизах. При обновлении проверяйте суммарное поведение CLI в CI.
  • При переходе с df/du на duf убедитесь, что парсеры ожидают новые форматы; используйте –json для стабильного интеграционного формата.

Часто задаваемые вопросы

Как узнать версию duf

duf --version

Можно ли запускать duf без прав root

Да. duf читает пользовательскую информацию о файловых системах. В некоторых случаях для доступа к определённой информации могут потребоваться права root.

Подходит ли duf для автоматизации в CI

Да. Используйте duf –json и парсинг с помощью jq для встраивания в пайплайны.

Как увидеть только смонтированные сетевые файловые системы

duf --only network

Примеры команд-шаблонов

Чек-лист команд для быстрого копирования:

  • Проверить все устройства в удобном виде:
duf --all
  • Экспорт для мониторинга:
duf --json > /tmp/duf.json
  • Показать только раздел с логами:
duf --only-mp /var --output size,used,avail
  • Показать использование inode:
duf --inodes

Decision tree для выбора инструмента

flowchart TD
  A[Нужно посмотреть дисковое пространство?] --> B{Нужен обзор или детальный анализ}
  B -- обзор --> C[Использовать duf]
  B -- детальный анализ --> D{По каталогам или по файловой системе}
  D -- по каталогам --> E[Использовать ncdu]
  D -- по ФС --> F[Использовать du или gdu]
  C --> G[Экспорт в JSON для мониторинга]

Резюме

duf упрощает повседневный мониторинг дискового пространства. Он сочетает читабельный вывод, гибкие фильтры и экспорт в JSON. Для большинства задач по быстрой диагностике и интеграции с мониторингом duf удобнее, чем набор классических команд.

Важно

Если вам нужен интерактивный разбор каталогов, дополните duf утилитой ncdu. Для автоматизации используйте duf –json.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Отключить автовход в Windows 10/11
Windows

Отключить автовход в Windows 10/11

Sentry и GitLab для React: настройка и практика
DevOps

Sentry и GitLab для React: настройка и практика

Exim: направить входящую почту в скрипт
Почта

Exim: направить входящую почту в скрипт

Удаление Git или смена удалённого репозитория
GIT

Удаление Git или смена удалённого репозитория

Автообновление страниц в браузере — расширения и советы
Браузеры

Автообновление страниц в браузере — расширения и советы

Go For It — обзор простого таймер‑todo для Linux
Linux

Go For It — обзор простого таймер‑todo для Linux