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

Visitors have accessed this post 60666 times.
Для того, чтобы через интерфейс командной строки узнать, сколько места занимают файлы и директории, в Linux используется команда du.
du расшифровывается как disk usage (использование диска).
Синтаксис команды du:
du [OPTION]. [FILE] [directory]
Если запустить du без указания параметров, то она выведет все директории и поддиректории текущей директории.
Чтобы проверить размер директории
Если вам нужно узнать размер директории в понятном человеку формате, используйте команду:
-s (от английского summarize) — отображает только общее значение для каждого аргумента.
-h , —(от английского human readable) — отображает значения в человекочитаемом формате, например, 70G , 215M.
Если нам нужно узнать размер конкретной директории, то нужно запустить команду вида:
# du -sh directory_name/
Допустим, наша директория называется marusya, ее размер можно узнать, запустив:
Получаем вывод вида
Если нужно отображать размер директории в конкретных единицах измерения (килобайтах\мегабайтах\гигабайтах)
По умолчанию команда du отображает размер директории в байтах. В случае, если нам удобней отображать размер файлов и директорий в килобайтах или мегабайтах, используется все та же команда du в Linux. Но к ней добавляется флаг -k (килобайты) или -m (мегабайты).
Установим отображение использования дискового пространства в килобайтах для нашей директории marusya.
А теперь — в мегабайтах,
В этом случае отображается использование дискового пространства директорией, но не размер ее файлов.
Чтобы узнать размеры файлов, нам понадобится флаг -a.
Чтобы узнать общий итоговый размер
Чтобы просмотреть общий размер всех файлов и поддиректорий в директории, используется флаг -c:
Чтобы узнать только общий размер директории, включая все поддиректории, добавьте к команде du команду grep.
# du -ch marusya | grep docs
Еще некоторые флаги, которые использует команда du Linux.
-D — если нужно обработать только перечисленные в командной строке символьные ссылки.
-d, —max-depth=Х — если нужно определить общий размер до определенного (Х) уровня древовидной структуры.
-t, —threshold=size — если нужно найти только файлы, размер которых больше определенного значения.
—time — используется для вывода времени, когда производилось последнее изменение в директории.
-X, —exclude-from=ФАЙЛ — если нужно исключить из расчета файлы, соответствующие определенному образцу.
От редакции
Если вам интересно посещать бесплатные онлайн-мероприятия по DevOps, Kubernetes, Docker, GitlabCI и др. и задавать вопросы в режиме реального времени, подключайтесь к каналу DevOps by REBRAIN.
*Анонсы мероприятий каждую неделю
Сколько нужно Debian под /?
Планирую крутить Wine/виртуалки в /home, потому сколько нужно с запасом места для /?

Riniko ★★
20.11.20 22:35:21 MSK
← 1 2 →
Сколько он предлагает при автоматическом создании разделов. Но я бы ещё накинул сверху с десяток «гигов», для гарантии, ибо кэш apt, бэкапы и прочее (если не заморочиться заранее и не вынести всё это в отдельный раздел).
Korchevatel ★★★★★
( 20.11.20 22:37:20 MSK )
Ответ на: комментарий от Korchevatel 20.11.20 22:37:20 MSK

Мало ли что я там ставить буду, нужно же с запасом. + 5% отожмёт сам диск для рута и прочего.
Riniko ★★
( 20.11.20 22:39:04 MSK ) автор топика
Последнее исправление: Riniko 20.11.20 22:39:53 MSK (всего исправлений: 1)
Если у тебя будет четыре раздела – EFI, корень, хомяк и своп, – 50 Гб должно хватить с головой под кучу самого разного софта. В крайнем случае возьмешь вантуз и прочистишь /var/log .
Bagrov ★★★★★
( 20.11.20 22:40:45 MSK )
Ответ на: комментарий от Riniko 20.11.20 22:39:04 MSK
И этого как раз хватит. У меня навороченная инсталляция «арча» со всем необходимым в 15 гигабайт поместилась, «деба» же немногим тяжелее.
Korchevatel ★★★★★
( 20.11.20 22:41:47 MSK )
Ответ на: комментарий от Riniko 20.11.20 22:39:04 MSK
- 5% отожмёт сам диск для рута и прочего.
При установке в экспертном режиме на этапе ручной разбивки диска, если ты используешь ext4 файловую систему, то ты можешь указать другой процент резервирования места под нужды root или вообще поставить 0%.
Можешь вообще использовать другую файловую систему, например xfs, но тогда нужно /boot с загрузчиком вынести на отдельную ФС.
anonymous
( 20.11.20 22:43:04 MSK )
Планирую крутить Wine/виртуалки в /home, потому сколько нужно с запасом места для /?
Логично вынести на отдельный раздел (можно и линками, можно и монтированием) /var (подкаталоги с базами), может быть /opt и конечно же «виртуалки», ибо они мало как завязаны на систему в /. Про хомяк на отдельном разделе я даже и не говорю.
В этом случае можно и 12 Гб обойтись для /, но «на всякий» (логи, кеши и т.п.) лучше 30-50 Гб.
UPD. Но это не значит, что под всё, кроме / надо делать отдельные разделы, можно и подтомами, как ниже говорят.
vvn_black ★★★★★
( 20.11.20 23:04:14 MSK )
Последнее исправление: vvn_black 20.11.20 23:17:51 MSK (всего исправлений: 1)
А зачем разделять хомяк и корень? Я понимаю, если бы это был 2010 год и самым популярным средством бекапов системы было снимать корень через dd на другой диск. А сейчас то зачем? Щас систему быстрее переставишь с нуля и развернешь конфиг. Не страдай и не разделая корень и хомяк.
anonymous
( 20.11.20 23:06:59 MSK )

В притык, так чтобы не осталось свободного места, под / /usr /var надо 9 ГБ.
Но вообще не разбивать диск на разделы не стоит, сделай один раздел btrfs и в нём субтома для всех нужных тебе директорий.
torvn77 ★★★★★
( 20.11.20 23:09:51 MSK )
Ответ на: комментарий от torvn77 20.11.20 23:09:51 MSK
Может, lvm тогда?
kardapoltsev ★★★★★
( 20.11.20 23:11:17 MSK )
Раньше я под root-раздел выделял 32 Гб. Не хватало. Теперь выделяю 64 Гб — хватает. Но если ты будешь устанавливать Wine, виртуалки, тяжёлое ПО, нативные игры DRM и Steam, то конечно хватать не будет. Тут помогут имлинки на другой раздел диска.
ZenitharChampion ★★★★★
( 20.11.20 23:11:19 MSK )
Ответ на: комментарий от anonymous 20.11.20 23:06:59 MSK
> А зачем разделять хомяк и корень?
Запорол систему, не загружается. Снёс / и не снёс /home. Переустановил. Работает. Все данные на месте, и даже настройки приложений.
Вышла новая убунта, надо обновляться. Снёс / и не снёс /home, обновился, и все данные на месте, и даже настройки приложений. Это в качестве альтернативы dist-upgrade.
ZenitharChampion ★★★★★
( 20.11.20 23:13:38 MSK )
Последнее исправление: ZenitharChampion 20.11.20 23:14:05 MSK (всего исправлений: 1)
Ответ на: комментарий от kardapoltsev 20.11.20 23:11:17 MSK

Не представляю что это такое и как настраивать, сомневаюсь что там всё сводится к отформатировать раздел в btrfs с теми или иными опциями.
torvn77 ★★★★★
( 20.11.20 23:16:34 MSK )
Ответ на: комментарий от torvn77 20.11.20 23:16:34 MSK

Не представляю что это такое
Ещё старожилов чуток позабанится и тут только анонимусы полезными останутся.
gutaper ★★★★★
( 21.11.20 00:21:23 MSK )
Ответ на: комментарий от kardapoltsev 20.11.20 23:11:17 MSK

Волей судьбы посмотрел что такое lvm и думаю что его использовать, по крайней мере в данном случае не стоит и по тоой простой причине что он по прежнему имеет тот же недостаток, что и разбивка на разделы: он создаёт разделы определённого размера, в то время как размер субтома btrfs динамически изменяется с записью или удалением из него данных.
То есть нет необходимости думать о конкретном размере субтома btrfs, сколько в него запишут, столько и будет, от нуля до полного размера файловой системы.
torvn77 ★★★★★
( 21.11.20 00:23:55 MSK )
Ответ на: комментарий от gutaper 21.11.20 00:21:23 MSK

А я значит не старожил?
torvn77 ★★★★★
( 21.11.20 00:24:50 MSK )
Ответ на: комментарий от torvn77 21.11.20 00:24:50 MSK

Так о чем я и написал. 5 звёзд, с 2007 года слышал про линукс и не знаешь, что такое LVM
gutaper ★★★★★
( 21.11.20 00:27:20 MSK )
Ответ на: комментарий от gutaper 21.11.20 00:27:20 MSK

Я не то что не слышал про линукс, я им активно пользуюсь.
Просто мне этот lvm не нужен.
torvn77 ★★★★★
( 21.11.20 00:31:49 MSK )
Последнее исправление: torvn77 21.11.20 00:32:21 MSK (всего исправлений: 1)
Ответ на: комментарий от ZenitharChampion 20.11.20 23:13:38 MSK
Запорол систему, не загружается. Снёс / и не снёс /home.
Если ты адекватный и у тебя запоролась система, ты не будешь на авось надеятся, что в хомяке тоже все ок. Аппаратные и програмные ошибки могут повлиять на целостность файлов. Поэтому лучший выход — проверка аппаратки — полная переустановка — развертывание бекапа. Кто делает, как ты предложил, — СЗЗБ.
Вышла новая убунта, надо обновляться. Снёс / и не снёс /home, обновился, и все данные на месте, и даже настройки приложений. Это в качестве альтернативы dist-upgrade.
А потом на всех форумах по линуксу «Я обновился, но программа не работает, шрифты не те, иконки пропали». В итоге все равно надо чистить профиль. Опять — СЗЗБ.
anonymous
( 21.11.20 00:32:37 MSK )
Ответ на: комментарий от anonymous 21.11.20 00:32:37 MSK

Если ты адекватный и у тебя запоролась система, ты не будешь на авось надеятся, что в хомяке тоже все ок.
Может он не ФС, а дефолтные конфиги уконфигил так, что распутать не может, тогда переустановка вполне себе решение.
torvn77 ★★★★★
( 21.11.20 00:34:57 MSK )

Под виртуалку плюс-минус 20Гб, независимо от дистрибутива.
Просмотр свободного места на диске/разделах в Linux

20.02.2021

VyacheslavK

Linux

комментария 4
В данной статье мы расскажем, как проверить свободное дисковое пространство на хосте под управлением Linux через консоль. Мы рассмотрим несколько базовых команд с помощью которых можно узнать размер не только одного диска или директории, а целого дерева каталогов. Отдельно выделим комбинированные команды для получения более детальной информации о размерах вложенных папок. В конце статьи мы приведем пример простого скрипта для мониторинга дискового пространства с отправкой уведомлением на почтовый ящик администратора.
Для чего нужно следить за дисковым пространством в системе? Разделы в Linux устроены так, что их можно заполнить на 100% и даже после такого, система продолжит работать. А вот отдельные сервисы могут пострадать, что может повлечь за собой необратимые последствия.
Просмотр занятого места на разделах командой du
Выведем список дисков в системе и их размер:

В моем случае, на виртуальной машине доступен 1 диск размером 40Гб.
Чтобы получить более детальную информацию по двум разделам, которые созданы на диске, можно использовать:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 40G 0 disk ├─vda1 253:1 0 512M 0 part /boot └─vda2 253:2 0 39.5G 0 part /
В листинге команды видно, что один раздел используется под /boot, а второй под корень системы.
Новый диск в Linux добавляется так. Для управления разделами и разметкой также удобно использовать parted.
Перейдем к утилите, вокруг которой мы построили данную инструкцию:
df – это команда позволяет отобразить информацию о свободном/доступном месте на диске, файловой системы раздела.
Чтобы листинг команды был более читабелен, нужно использовать ее с опциями. Например:

- Filesystems – имя файловой системы
- Size – размер раздела
- Used – используемое дисковое пространство
- Avail – доступное дисковое пространство(свободное)
- Use% — занятое дисковое пространство в процентах
- Mounted on – смонтировано. Указывает директорию, к которой примонтирован раздел.
При использовании опции -h дисковое пространство выводится в Гб. Если размер меньше 1Гб, то вывод будет в Мб.
df -m – информация будет отображена в Мб.
df -k — информация будет отображена в Кб.
df -T – к выводу добавиться тип файловой системы
df -hT /boot – с данной опцией, будет предоставлена информация

Опции можно комбинировать между собой, для получения нужной информации.
Полная справка по df доступна через команду:
Получаем размеры директорий командой du
Вторая команда, которую мы рассмотрим, это du. du – команда отображающая размер директории.
Дополнительные опции для du:
- du -h – показывает информацию в читабельном формате. Можно указать путь к конкретной директории, если применить без этого, покажет информацию в текущем каталоге.
- du -sh – покажет размер директории в которой вы находитесь. Можно указать путь к директории.
- du -m – вывод информации в Мб.
- du -h —time – выведет информацию с дополнительным столбцом по времени изменения директории или файлов.

Больше информации по утилите, можно увидеть так:
При администрировании сервера, можно комбинировать вышеописанные команды. Например, выведем размер всех вложенных каталогов в /var/log и отсортируем вывод от большего к меньшему (чтобы самые большие каталоги оказались вверху списка):
# du -h /var/ | sort -rn

# du —max-depth=1 -h – выводит на экране размер вложенных директории, не дальше 1-го уровня вложенности.
Таким образом, вы легко можете определить сколько места занимают разные директории, и быстрой найти большие каталоги, которые занимают очень много места.
Bash скрипт мониторинга свободного места в Linux
Рассмотрим простой bash скрипт, для мониторинга дискового пространства на сервере и отправке email уведомления администратору, если места недостаточно.
#!/bin/bash
CURRENT=$(df / | grep / | awk ‘< print $5>‘ | sed ‘s/%//g’)
THRESHOLD=90
if [ «$CURRENT» -gt «$THRESHOLD» ] ; then
mail -s ‘Заканчивается дисковое пространство’ -r [email protected] В вашем корневом разделе сервера server1, осталось слишком мало дискового пространства. Используется: $CURRENT%
EOF
fi
При достижении заполняемости директории / до 90% к вам на почту будет отправляться уведомление. Добавьте данный скрипт в cron и мониторьте вашу систему. Можно изменить скрипт, чтобы он смотрел за размером определенного раздела или каталога.
Предыдущая статья Следующая статья
Сколько места на жестком диске занимает Linux Debian?
5 гигов тебе хватит на саму систему. . ну и еще гигов 10 под то чтобы ты хранил на них свои файлы.
DeNiSУченик (164) 15 лет назад
Откуда 5 гигов если она на 3х ДВД дисках каждый по 4,4 гига?
GiSTМастер (1029) 15 лет назад
мля. 3 двд диска это да. на первый — установочный. второй и третий это диски с программами под для операционки. их можно ставить, а можно и нет. там больше половины тебе не надо. поверь мне. на него хватит 5 Гб. я ж ставил уже..
Похожие вопросы
Ваш браузер устарел
Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.