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

Как проверить и проанализировать использование диска в Linux с помощью df и du

8 min read Linux Обновлено 20 Dec 2025
Проверить и проанализировать использование диска в Linux
Проверить и проанализировать использование диска в Linux

TL;DR

  • Быстрый способ увидеть занятое и доступное место — команда df. Чтобы понять, какие папки занимают место, используйте du.
  • df показывает статистику по файловым системам. du показывает размеры каталогов и подпапок.
  • Комбинации опций -h, -B, -T, -x, –total и –output для df и -h, -s, -B, –max-depth для du позволяют гибко фильтровать и форматировать вывод.

Несколько внешних и внутренних накопителей на столе

Этот подробный гид объясняет, как быстро определить, сколько места занято, где находятся «тяжёлые» каталоги и что делать дальше. Примеры ориентированы на Bash в Linux, но команды работают и в macOS и других Unix-подобных системах.

Коротко о терминах

  • Файловая система — способ организации файлов на разделе диска. Примеры: ext4, xfs, btrfs, squashfs.
  • inode — структура метаданных файла (имя, права, время, указатели на данные). Количество inode ограничено для каждой ФС.
  • Монтаж — точка в дереве каталогов, куда «подсоединён» раздел или виртуальная ФС.

Важно: не удаляйте файлы, не сделав резервную копию важных данных. Перед очисткой проверьте, что файлы действительно вам не нужны.

Просмотр общего, доступного и занятого места: команда df

Команда df показывает сводную информацию по смонтированным файловым системам. Самый простой вызов:

df

Вывод состоит из строк с колонками: source (имя устройства или тома), 1K-blocks (объём в блоках по 1К), Used, Available, Use% и Mounted on (точка монтирования).

Чтобы увидеть вывод удобочитаемым, используйте опцию -h (human readable):

df -h

Вывод df с опцией -h, показывающий размеры в удобных единицах

Если нужен фиксированный масштаб, применяйте -B с буквой (K, M, G и т. д.). Пример для мегабайт:

df -BM

Вывод df с опцией -BM, показан в мегабайтах

Для просмотра количества inode используйте -i:

df -i

Вывод df с опцией -i, показывающий использование inode

Фильтрация по типу файловой системы

Иногда вывод захламлён псевдо-FS, например squashfs, loop или tmpfs. Сначала узнайте типы с -T:

df -T

Вывод df с опцией -T, показывающий типы файловых систем

Чтобы исключить тип, используйте -x:

df -x squashfs

А чтобы показать только тип ext4:

df -t ext4

Объединённый итог и выбор колонок

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

df -x squashfs --total

Можно указать, какие колонки выводить, через –output. Например, интересуют source, fstype, size, used, avail, pcent:

df -h /dev/sda1 --output=source,fstype,size,used,avail,pcent

Если нужна вся возможная информация, используйте -a –output без списка колонок:

df -a --output

А для удобного просмотра больших таблиц направьте вывод в less:

df -a --output | less

Полезные трюки и сохранение алиаса

Длинные команды удобно сохранять в алиасах. Пример:

alias dfc="df -h /dev/sda1 --output=source,fstype,size,used,avail,pcent"

Чтобы алиас сохранился между сессиями, добавьте строку в ~/.bashrc или ~/.bash_aliases.

Примечание: если вы работаете через ssh и у вас разные машины, убедитесь, что алиас определён на каждой машине, где он нужен.

Что занимает место: команда du

Команда du показывает размер каталогов и подпапок. Базовый вызов выводит рекурсивный список:

du

Вы увидите строки вида: объём (в 1K блоках) и путь каталога.

Используйте -h для удобочитаемого вывода и -s для суммарного размера каталога без показа вложенных:

du -h -s *

Результат du -h -s *, показывающий размеры вложенных каталогов

Чтобы получить список подкаталогов в мегабайтах и отсортировать по убыванию:

du -sm Pictures/* | sort -nr

Сортировка папок по размеру с помощью du -sm и sort -nr

Ограничение глубины и исключение других ФС

  • –max-depth=N ограничивает глубину обхода. Полезно, чтобы увидеть только верхние уровни каталога.
  • -x запрещает переходить на другие монтированные файловые системы.

Примеры:

# Показать размер каталога /var и только первого уровня вложения
du -h --max-depth=1 /var

# Посчитать размер текущей ФС, не заходя в другие точки монтирования
du -xh --max-depth=2 /

Быстро найти топ-10 «тяжёлых» директорий

du -xh / | sort -hr | head -n 20

Обратите внимание: этот запуск покажет все точки монтирования. Если вам нужно ограничиться одной ФС, используйте -x.

Пошаговый план: как найти и безопасно освободить место (мини-методология)

  1. Сначала выясните общую картину:
    • df -h –total
  2. Определите ФС и точки монтирования, где много занято:
    • df -hT
  3. Для каждой критичной точки монтирования выполните du с подходящими опциями:
    • du -xh –max-depth=1 /path
  4. Для глубокого поиска топ-10 каталогов используйте:
    • du -xh /path | sort -hr | head -n 20
  5. Проверьте открытые и удалённые файлы (частая причина «невидимого» занятого места):
    • lsof +L1
  6. Очистите безопасно:
    • Удалите временные/кэш файлы (apt, package cache, tmp).
    • Архивируйте старые логи и переместите на внешний диск.
    • Для журнальных файлов systemd используйте: journalctl –vacuum-size=200M
  7. Повторите df, чтобы убедиться в освобождении места.

Пример runbook (шаги для экстренной очистки)

  • Примечание: выполняйте под sudo или root, когда это необходимо.
  1. Проверка дискового пространства:
df -h
  1. Найти большие каталоги в корне:
du -xh --max-depth=1 / | sort -hr
  1. Если /var/log растёт, просмотрите самые большие файлы:
ls -lhS /var/log | head -n 20
  1. Очистка apt cache (Debian/Ubuntu):
apt-get clean
  1. Сжать или архивировать старые логи:
cd /var/log
tar -czf /root/logs-archive-$(date +%F).tar.gz *.log --remove-files
  1. Если найден открытый, но удалённый файл, освободите место перезапуском сервиса или kill процесса, держащего дескриптор:
lsof +L1
# затем kill  или перезапустить службу systemctl restart <служба>
  1. Проверка результата:
df -h

Важно: не удаляйте системные файлы без понимания последствий. Всегда делайте резервные копии критичных данных.

Инструменты-альтернативы и графические утилиты

  • ncdu — консольный интерактивный анализатор директории. Очень удобен для быстрого поиска больших каталогов.
  • baobab (Disk Usage Analyzer) — GUI для GNOME.
  • duff, fdupes — поиск дубликатов файлов.
  • rsync — перенос больших наборов данных на другой диск.
  • find — для выборочного удаления по дате/размеру.

Пример использования ncdu:

ncdu /

ncdu интерактивно позволяет переходить по каталогам и удалять элементы прямо из интерфейса.

Когда df и du могут вводить в заблуждение — распространённые случаи

  1. Удалённые, но всё ещё открытые файлы — процесс держит дескриптор. Файл исчезает из дерева, но место остаётся занятым пока процесс не завершится. lsof +L1 помогает обнаружить такие случаи.
  2. Sparse-файлы и тонкие тома (sparse files, sparse allocation) — du может показывать «логический» размер, df — «физический» займ. Для точной информации используйте ls -s и stat.
  3. Overlay/union/containers (overlayfs, aufs) — файлы внутри контейнера могут не отображаться ожидаемо внешними инструментами.
  4. Разные точки монтирования — если /home смонтирован отдельно, du / покажет не содержимое /home без опции -x.
  5. Журналы systemd могут расти до внезапно большого размера; используйте journalctl –vacuum-size.

Сниппеты и готовые команды (cheat sheet)

  • Показать все ФС с типами и в удобном виде:
df -hT
  • Топ-20 больших файлов/папок в корне ФС:
du -xh / | sort -hr | head -n 20
  • Найти большие файлы в системе (по размеру):
find / -xdev -type f -size +100M -exec ls -lh {} \; | awk '{ print $5 " " $9 }'
  • Проверить, какие процессы держат удалённые файлы:
lsof +L1
  • Очистить apt-кэш (Debian/Ubuntu):
apt-get clean
  • Очистить место journalctl до 200M:
journalctl --vacuum-size=200M

Скрипт: отчёт по диску и 10 топ-папок (пример автоматизации)

#!/bin/bash
# disk-report.sh
echo "Disk usage summary:"
df -h --total | grep total || df -h --total

echo "\nTop 10 directories by size (from /):"
du -xh / | sort -hr | head -n 10

# Save report
REPORT_DIR=/var/tmp/disk-reports
mkdir -p "$REPORT_DIR"
OUT=$REPORT_DIR/report-$(date +%F-%H%M%S).txt
{
  df -h --total
  echo "\nTop 20 directories:" 
  du -xh / | sort -hr | head -n 20
} > "$OUT"

echo "Report saved to $OUT"

Поставьте этот скрипт в cron или systemd timer, если вам нужны регулярные отчёты.

Ролевые чеклисты

Администратор:

  • Проверить df -hT и определить перегруженные ФС.
  • Выполнить du -xh –max-depth=1 для критичных точек монтирования.
  • Найти открытые удалённые файлы через lsof +L1.
  • Архивировать старые логи и настроить ротацию logrotate.
  • Убедиться, что бэкапы доступны перед удалением.

Обычный пользователь:

  • Проверить домашнюю папку du -h -s ~/*.
  • Очистить кэш приложений и старые загрузки.
  • Перенести большие мультимедиа на внешний диск или облако.

Пример критериев приёмки после очистки

  • Свободное место в целевой ФС увеличилось на ожидаемую величину.
  • Критические сервисы запущены и работают корректно.
  • Нет ошибок в системных журналах, связанных с удалёнными файлами или правами.

Краткий глоссарий (1 строка каждый)

  • df — утилита для просмотра занятости файловых систем.
  • du — утилита для оценки размеров каталогов.
  • inode — запись файловой системы с метаданными файла.
  • mount — присоединение раздела к дереву каталогов.

Примеры визуальных сценариев (Mermaid — решение для выбора действия)

flowchart TD
  A[Диск заполнен] --> B{Где занято?}
  B -->|Файловая система| C[df -hT]
  B -->|Каталоги| D[du -xh --max-depth=1]
  C --> E{ФС отдельные?}
  E -->|Да| D
  E -->|Нет| F[lsof +L1]
  D --> G{Найдены большие каталоги}
  G -->|Логи| H[Архивировать и ротировать]
  G -->|Кэш| I[Очистить кэш приложений]
  G -->|Пользовательские данные| J[Перенести/удалить/архивировать]

Советы по безопасности и приватности

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

Заключение

Команды df и du — базовый и мощный инструмент для оценки использования диска. Небольшие комбинации опций и простые пайплайны позволяют быстро локализовать «тяжёлые» каталоги и принять решение: очистить, перенести или добавить хранилище. Для интерактивного анализа используйте ncdu. Всегда выполняйте операции с файлами аккуратно: проверяйте открытые дескрипторы, делайте резервные копии и контролируйте права.


| | Linux Commands | | Files | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm · scp · gzip · chattr · cut · find · umask · wc · tr | | | Processes | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap | | | Networking | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld | |

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

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

Анимация круговой диаграммы в PowerPoint
Презентации

Анимация круговой диаграммы в PowerPoint

Астропрофиль в Snapchat — как создать
Руководство

Астропрофиль в Snapchat — как создать

Отключить автоповорот экрана в Windows 8
Windows

Отключить автоповорот экрана в Windows 8

Как подготовиться к краже Android‑телефона
Мобильная безопасность

Как подготовиться к краже Android‑телефона

Поделиться твитом в Snapchat — стикер истории
Социальные сети

Поделиться твитом в Snapchat — стикер истории

Как снизить галлюцинации у ИИ
Искусственный интеллект

Как снизить галлюцинации у ИИ