Просмотр свободного места на диске/разделах в 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 и мониторьте вашу систему. Можно изменить скрипт, чтобы он смотрел за размером определенного раздела или каталога.
Предыдущая статья Следующая статья
Записки IT специалиста
Linux — начинающим. Как узнать чем занято место на диске?
- Автор: Уваров А.С.
- 24.08.2022
Контроль свободного места на серверах и рабочих станциях под управлением Linux является достаточно актуальной задачей для администратора, особенно при использовании SSD, объемы которых все еще меньше, чем хотелось бы. При этом недостаточно только контролировать занятое пространство, нужно еще четко понимать, чем именно оно занято, то ли это рабочие данные и нужно действительно расширять дисковую подсистему, то ли скопившийся годами хлам, который можно безболезненно удалить.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Любая работающая система со временем обрастает всякими нужными и не особо нужными файлами, которые могут быть щедро разбросаны по файловой системе. Это могут быть установочные пакеты, архивы, какие-то временные копии, которые оставили по принципу «пусть недельку полежат на всякий случай», а также временные файлы, кеши и т.д. и т.п.
И когда встает вопрос: а собственно, чем это занято место на диске? Ответить на него бывает непросто, нужен анализ использования диска и сегодня мы рассмотрим, как это можно сделать.
Утилиты df и du
Начнем с самых основ, эти утилиты может и не радуют удобством, но они есть в любом Linux-дистрибутиве и просто делают свою работу. Начнем с df, эта утилита позволяет получить отчет о доступном и использованном пространстве на файловых системах. Использовать ее просто:
df -h
Ключ -h (—human-readable) выводит данные в удобочитаемом формате, т.е. мегабайтах и гигабайтах, также можете использовать ключ -H, он делает тоже самое, но с использованием системы СИ, т.е. в расчетах используется 1000 вместо 1024.
Выяснив нужную файловую систему и точку монтирования, перейдем к более глубокому анализу того, что занимает место на диске, для чего привлечем утилиту du, которая показывает место занимаемое файлами и папками, с ней также можно использовать ключи -h или -H, но если мы выполним следующую команду, то результат нас вряд-ли обрадует:
du -h /
Ниже показана часть такого вывода:
Дело в том, что утилита пройдет рекурсивно на всю глубину и выдаст размер каждой папки и файла в указанном расположении, чтобы изменить такое поведение используйте ключ -d для явного указания глубины анализа. Например, ограничимся только директориями верхнего уровня:
du -hd 1 /
Ну вот, совсем уже другое дело. Как можем увидеть, больше всего места занимает директория /var:
Теперь проанализируем персонально ее:
du -hd 1 /var
Таким образом, шаг за шагом мы можем найти все интересующие нас расположения и изучить их содержимое, получив данные о том, чем именно занято дисковое пространство.
Утилита ncdu
Все это хорошо, но несколько долго и муторно, может быть есть способ проще? Есть, это утилита ncdu (NCurse Disk Usage), которая представляет удобный интерактивный инструмент с псевдографическим интерфейсом. Для установки в DEB-cистемах используйте команду:
apt install ncdu
Если запустить утилиту без параметров, то она проанализирует текущее расположение, поэтому мы выполним:
ncdu /
Сканирование может занять некоторое время, после чего вы увидите директории и файлы первого уровня, отсортированные по уменьшению размера. Фактически все уже сделали за нас, вывод ncdu гораздо более нагляден и информативен.
Здесь же сразу вы можете получить дополнительную информацию, так значок @ слева обозначает что перед нами символическая ссылка, а буква e (empty) — указывает на пустую директорию. Как мы уже говорили, система интерактивна, для навигации следует использовать стрелки, а для перехода с уровня на уровень — Enter . Но это еще не все, вы можете сразу отсюда удалять файлы простым нажатием на d , но при этом вам придется явно подтвердить удаление, что исключает случайные срабатывания.
Для быстрого знакомства со всеми возможностями утилиты всегда можно вызвать встроенную справку, нажав ? . Все это указано прямо в шапке утилиты.
На наш взгляд, данная утилита заслуживает того, чтобы стать частью джентельменского набора любого администратора, на своих серверах мы устанавливаем ее по умолчанию. Кстати, если вы работаете с WSL (Windows Subsystem for Linux), то можете с помощью ncdu выполнять анализ файловых систем Windows.
Инструменты графической оболочки
При работе в графической оболочке вы, конечно, можете использовать привычные консольные инструменты, но обычным пользователям будут более удобны графические инструменты. Практически во всех дистрибутивах есть утилита Анализатор использования диска, она не требует для работы повышения прав, а также весьма проста и наглядна.
Интерфейс программы стандартный для такого рода утилит: слева список файлов и директорий, отсортированный по размеру, а справа интерактивная диаграмма, которая может быть представлена как в круговой, так и в линейной форме. Прямо отсюда мы можем переходить в интересующие расположения, копировать ссылки на них или просто удалять файлы и директории.
Но, как мы уже говорили, утилита работает без повышения прав, поэтому столь широкий набор действий доступен пользователю только в отношении тех объектов файловой системы, на которые у него есть права, как правило это Домашняя директория. При этом ему доступен анализ всей файловой системы, только вот там он будет ограничен только просмотром.
Что именно использовать из предложенных вариантов — личное дело каждого. Linux тем и хорош, что предоставляет множество разных путей для решения одной и той же задачи и нельзя сказать, что какой-то из этих путей правильный, а остальные нет. Все они ведут к одной цели.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Дополнительные материалы:
- Linux — начинающим. Часть 1. Первое знакомство
- Linux — начинающим. Часть 2. Установка Ubuntu Server
- Linux — начинающим. Часть 3. Установка Debian 7 для сервера
- Linux — начинающим. Часть 4. Работаем с файловой системой. Теория
- Linux — начинающим. Часть 4. Работаем с файловой системой. Практика
- Linux — начинающим. Часть 5. Управление пакетами в Debian и Ubuntu
- Linux — начинающим. Часть 6. Управление пользователями и группами. Теория
- Linux — начинающим. Часть 6. Управление пользователями и группами. Практика
- Linux — начинающим. Часть 7. Потоки, перенаправление потоков, конвейер
- Настройка языка и региональных стандартов в Ubuntu Server/Debian
- Используем APT Pinning для закрепления пакетов в Debian и Ubuntu
- Linux — начинающим. Что такое Load Average и какую информацию он несет
- Обновляем снятый с поддержки дистрибутив Ubuntu
- Linux — начинающим. Обновление Debian до следующего выпуска
- Осваиваем эффективную работу в Midnight Commander
- Linux — начинающим. Что такое пространства подкачки и как они работают
- Linux — начинающим. Screen — многозадачность в терминале и ни единого разрыва!
- Linux — начинающим. Как узнать температуру процессора и накопителей
- Linux — начинающим. Как получить информацию об оборудовании ПК
- Linux — начинающим. Установка и первоначальная настройка Debian 11 для сервера
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
Или подпишись на наш Телеграм-канал:
Как Узнать Свободное Место на Диске в Linux
В этом руководстве мы расскажем, как посмотреть свободное место на диске в Linux с помощью командной строки. Вы узнаете отдельные команды, которые при их совместном использовании, могут стать мощным инструментом в управлении вашим диском. Это руководство может вам помочь, если вам необходимо освободить место на вашем компьютере или вы просто хотите узнать какие файлы занимают много места на вашем жестком диске.
Прокачайте ваш Linux сервер, воспользовавшись скидками на VPS-хостинг в Hostinger!
Что вам понадобится
Перед тем как вы начнете это руководство, вам понадобится следующее:
- Доступ к командной строке
Шаг 1 — Анализ свободного места на диске в Linux
Первой командой, которой мы воспользуемся станет df. Это команда означает файловая система диска. Она отобразит свободное место на диске в Linux. После выполнения команды, вы увидите несколько стандартных колонок: Файловая система, Размер, Использовано, Доступно, %Использования, Смонтирован на. Выглядеть это должно так:
- Файловая система(filesystem)- предоставляет имя файловой системы.
- Размер (size) — дает общий размер всех файлов в конкретной файловой системе.
- Использовано (used) — показывает количество уже использованного места в конкретной файловой системе.
- Доступно (avail) — показывает, как много свободного места осталось в конкретной файловой системе.
- %Использования (use%) — показывает процент использованного дискового пространства.
- Смонтирован на (mounted on) — последняя колонка показывает точку монтирования файловой системы.
С использованием определенных опций для этой команды, будут показаны другие колонки. Мы рекомендуем использовать эту команду с такими дополнительные опциями:
- df -h — данная опция отобразит информацию в удобном, более понятном для человека формате. При использовании этой команды, дисковое пространство будет показано в Гб (но только не в том случае, если оно меньше одного Гб).
- df -m — может быть использована для отображения информации в Мб.
- df -k — также как и предыдущая, может быть использована для отображения использования файловой системы в Кб.
- df -T — эта опция отобразит тип файловой системы (появится новая колонка).
- df -ht /home — использовав эту опцию, вы сможете увидеть информацию о конкретной файловой системе (в более удобном для человека формате).
- df —help — поможет отобразить полезные команды, которые вы можете использовать и информацию о них.
Еще одна полезная команда это du. Она означает использование диска. Эта команда, покажет вам информацию об использовании дискового пространства файлами и папками на компьютере Linux. Эта команда очень полезна, так как позволяет рекурсивно собирать информацию об использовании файлами и папками дискового пространства. Вы можете использовать эту команду для того, чтобы получить информацию об определенной папке и увидеть информацию о том, что внутри нее. Вот еще немного полезных опций для использования с этой командой:
- du /home/user/Desktop/ — эта опция позволяет посмотреть на Desktop (Рабочий стол) пользователя и увидеть информацию об использовании дискового пространства файлами и папками, расположенными на вашем рабочем столе (все подпапки также включены).
- du -h /home/user/Desktop/ — также как и df, позволяет увидеть информацию в более удобном для человека формате.
- du -sh /home/user/Desktop/ — опция -s даст нам полный объем определенной папки (в этом случае покажет полный объем папки Desktop).
- du -m /home/user/Desktop/ — также как и с df, предоставит вам информацию в Мегабайтах (вы можете использовать -k, чтобы увидеть информацию в Килобайтах.
- du -h —time /home/user/Desktop/ — это даст вам информацию, основанную на последнем изменении файлов и папок.
- df —help — покажет вам другие полезные команды, которые вы можете использовать и информацию о них.
Шаг 2 — Комбинирование команд и очистка дискового пространства
Вы можете комбинировать команды, которые вы изучили в данном руководстве, и другие, о которых вы можете узнать из наших руководств. Комбинируя их, вы можете получить довольно полезные результаты, которые помогут вам определить, что нужно удалить для освобождения места на диске. Вот некоторые советы, которыми мы хотели бы поделиться с вами:
- Для начала, не забывайте проверить какой раздел диска самый загруженный. Вы можете сделать это при помощи уже изученной команды df.
- Возможно, самая популярная комбинация это: du -h /home/user/Desktop/ | sort -rn. Во-первых, мы собираем информацию о списке ваших файлов и папок на Desktop (Рабочем столе) в более читаемом для человека формате и передаем эту информацию другой команде sort, которая, используя правильные опции, сортирует ваши файлы и папки по их размеру, от самых больших к самым маленьким. Это даст нам понимание того, где вы должны сфокусировать свое внимание для освобождения дискового пространства.
- Другой очень полезной комбинацией станет: du -h /home/user/Desktop | grep ‘^\s*[0-9\.]\+G’. Она полезна в том случае, если у вас большое количество маленьких файлов и вы хотите их отфильтровать от больших. Вы также можете использовать +M вместо +G, в таком случае будут выбраны файлы тяжелее одного Мб.
- Вы можете исключить определенные типы файлов при помощи опции —exclude=»*.bin». Она используется с командой du, в случае если вы хотите получить список файлов, который не будет содержать определенные типы файлов. К примеру: du -h /home/user/Desktop/ —exclude=»*.txt» | sort -rn — исключит из результата все файлы с расширением .txt.
Заключение
В этом руководстве вы научились базовым командам, которые помогут вам, как узнать свободное место на диске в Linux. Для получения дополнительной информации используйте команду man command, она предоставит вам руководство с гораздо большей информацией о командах и опциях, которые вы можете использовать. Также, не забудьте проверить другие наши руководства посвященные данной теме!
Как узнать, сколько места занимают файлы и директории в Linux
Visitors have accessed this post 53929 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.
*Анонсы мероприятий каждую неделю