Найти в Дзене
UFO.Hosting

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

Типичная ситуация: на сервере закончилось свободное место и не совсем понятно, кто именно «съедает» ценные мегабайты. В таких случаях не обязательно бежать и менять тариф — вполне можно воспользоваться стандартными Linux-утилитами df и du. Далее мы разберем все нюансы их применения. Используйте промокод DZEN и получите скидку при заказе выделенных и виртуальных серверов от UFO.Hosting. Используйте его при покупке услуги и получите надежную базу для развития ваших проектов. Команда df смотрит на файловые системы целиком: сколько выделено, сколько свободно и какой процент уже занят. Для получения информации достаточно ввести команду: df -hT Где: → -h — размеры в удобных единицах (K/M/G).
→ -T — тип файловой системы (ext4, xfs и т. д.). Особенно утилиты du в том, что она не рассматривают файловую систему в целом, а только проходится по дереву каталогов и суммирует размеры. Быструю сводку по подпапкам текущего каталога можно получить с помощью следующей команды: du -sh ./* 2>/dev/null → -s
Оглавление

Типичная ситуация: на сервере закончилось свободное место и не совсем понятно, кто именно «съедает» ценные мегабайты. В таких случаях не обязательно бежать и менять тариф — вполне можно воспользоваться стандартными Linux-утилитами df и du.

Далее мы разберем все нюансы их применения.

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

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

Команда df смотрит на файловые системы целиком: сколько выделено, сколько свободно и какой процент уже занят. Для получения информации достаточно ввести команду:

df -hT

Где:

→ -h — размеры в удобных единицах (K/M/G).
→ -T — тип файловой системы (ext4, xfs и т. д.).

du помогает понять, что именно заняло место

Особенно утилиты du в том, что она не рассматривают файловую систему в целом, а только проходится по дереву каталогов и суммирует размеры.

Быструю сводку по подпапкам текущего каталога можно получить с помощью следующей команды:

du -sh ./* 2>/dev/null

→ -s — итог по каждому элементу без глубокой раскрутки.
→ -h — удобные единицы.
→ 2>/dev/null — скрыть сообщения «Permission denied», если где-то нет прав.

Хотите увидеть «топ прожорливых» с сортировкой? Введите команду:

du -xh --max-depth=1 /var | sort -h

→ --max-depth=1 — глубина обхода: только непосредственные подпапки.
→ -x — не проваливаться на другие файловые системы, примонтированные внутрь /var.
→ sort -h — сортировка с пониманием K/M/G.

Нужно копнуть немного глубже? Увеличивайте --max-depth:

du -h --max-depth=2 /home/user | sort -h

Эта команда позволяет искать именно крупные файлы, а не папки:

du -ah /path | sort -h | tail -n 20

Почему цифры в df и du могут различаться

Такое бывает и это нормально. Несколько причин:

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

→ Спарс-файлы (sparse). du по умолчанию считает реальное занятое место на диске, а не заявленный размер. Если нужна «видимая» величина, используйте:

du -h --apparent-size файл

→ Разные файловые системы в подкаталогах. du может уйти в примонтированный том, а df покажет их отдельно. Помогает ключ -x у du.

→ Квоты, снапшоты, сжатие на уровне FS. Файловые системы вроде btrfs/zfs ведут собственный учёт, df и du не всегда отражают нюансы компрессии и снапшотов.

Практические рецепты «на бегу»

Понять, что забило /var:

du -xh --max-depth=1 /var | sort -h

Вывести самые «тяжёлые» журналы:

du -h /var/log/*.log | sort -h

Отсечь временные каталоги:

du -xh --max-depth=1 / --exclude=/proc --exclude=/sys --exclude=/run | sort -h

Проверить, хватит ли места перед обновлением/деплоем:

df -hT / /var /home

Собрать общий отчёт по пользователю:

du -sh /home/username

Если нет прав, то добавьте перед командой выше sudo, а предупреждения спрячьте 2>/dev/null.

Итог

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