- Анализ дискового пространства в Linux – команды du и ncdu
- как посмотреть свободное место на диске
- Команда du – синтаксис и опции
- Примеры использования команды du
- Команда ncdu
- Примеры команд ncdu
- Похожие записи:
- Как узнать свободное место на диске в Linux
- Как узнать свободное место на диске в Linux
- Примеры команд df — проверка свободного места на диске
- Примеры команд Терминала
- Программа GUI
- Выводы
Анализ дискового пространства в Linux – команды du и ncdu
Одной из распространённых задач в системном администрировании является оценка состояния жёстких дисков (а также и других устройств хранения), в том числе анализ использования дискового пространства. В Linux для таких целей давно существуют утилиты с удобным графическим интерфейсом, предоставляющих наглядную информацию о занятом пространстве в виде диаграмм и графиков. Однако, для системных администраторов, обслуживающих «серьёзные» сервера на основе Linux-систем, графический интерфейс — чрезмерное удовольствие, не оправдывающее затрачиваемых на него ресурсов. Поэтому необходимо уметь обходиться средствами командной консоли, используя специализированные консольные утилиты для анализа дискового пространства, которые доступны в виде двух команд — du и ncdu.
как посмотреть свободное место на диске
Давайте узнаем сколько у нас свободного места в системе. Узнать это можно с помощью команды
как видим у нас диск занят на 97%, и нам необходимо узнать что у нас заняло место. Давайте этим займемся.
Команда du – синтаксис и опции
Disk Usage – именно так интерпретируется название команды du. Она была написана ещё в самой первой версии UNIX (в определённом роде предшественницы Linux), еще в стенах одной из лабораторий компании AT&T. Этот факт даёт понять, насколько важно следить за дисковым пространством, а также анализировать его при наличии специализированных программных инструментов, ведь du – одна из самых первых утилит из стандартного комплекта UNIX/Linux.
Итак давайте узнаем что у нас занимает место
Более подробное описание команды du и ключей вы можете прочитать ниже. Вывод будет следующий
Отсюда мы видим что самый большой каталог у нас /var. Посмотрим что у на занимает место в каталоге /var
и вот здесь мы уже видим пять самых больших файлов с логами, именно они и заняли все место на диске. Давайте рассмотрим команду du подробнее.
Согласно описанию из официального man-руководства, утилита du суммирует использование дискового пространства набора элементов, рекурсивно с каталогами. Синтаксис команды не простой, а очень простой, поскольку представляет собой классический прототип команды Linux:
Если дать команду du без параметров, то по-умолчанию будет выведен список всех каталогов и подкаталогов для текущего каталога. Также по-умолчанию единицей измерения объёма является 1024 байта или 512 байт, в зависимости от конфигурации используемой системы:
du code_text.txt 4 code_text.txt
Как видно, code_text.txt занимает 4 килобайта (т. к. 1024 байта = 1 килобайт) дискового пространства. То же самое и с папками, но по-умолчанию будет указан общий размер папки без детализации по файлам и подкаталогам. В следующей таблице приведены опции команды du:
Используемые командой du единицы измерения размера (или объёма) задаются в формате «цифраБуква», где цифра — это коэффициент, а Буква — степень единицы измерения, например: 5K = 5 * 1024 = 5120 = 5 килобайт и по аналогии для M – мегабайт, G – гигабайт.
Примеры использования команды du
Узнать общий размер каталога (например с резервными копиями):
$ du -sh ~/home/backups 19G /home/john/backups
Вывод размеров всех подкаталогов (рекурсивно):
$ du -h ~/home/backups/ 3,2M /home/john/backups/vhosts/ssl 1,5M /home/john/backups/vhosts 5,0M /home/john/backups
$ du -ha ~/home/backups/ 4,0K /home/john/backups/.directory 764K /home/john/backups/scheme.txt 3,2M /home/john/backups/vhosts/ssl 1,5M /home/john/backups/vhosts 5,0M /home/john/backups
С фильтрацией в зависимости от размера файла/каталога:
$ du -ha -t2M ~/home/backups/ 3,2M /home/john/backups/vhosts/ssl 5,0M /home/john/backups
Как видно, были отброшены файлы/каталоги размером меньше 2 мегабайт. Следующая команда, напротив — исключит из вывода только файлы/каталоги больше 2 мегабайт:
$ du -ha ~/home/backups/ 4,0K /home/john/backups/.directory 764K /home/john/backups/scheme.txt 1,5M /home/john/backups/vhosts
Команда ncdu
Более удобный способ найти что занимает место на диске можно с помощью команды ncdu. Утилита ncdu (Ncurses Disk Usage) способна делать всё то же самое, что и утилита du и даже немного больше. К тому же, она предоставляет пользователю удобный в использовании псевдографический интерфейс, с помощью которого можно быстро перемещаться по дереву системы, оценивая размеры интересующих элементов и папок.
Фактически, ncdu может выполнять функции полноценного браузера системы, при этом имеет большое количество опций, позволяющих настраивать псевдоинтерфейс для разных режимов работы, экспортировать и импортировать результаты работы в файлы, выполнять сортировки, экономить сетевой трафик, если это нужно, когда анализируется удалённая (например по SSH) система.
По-умолчанию, выполнение команды ncdu без параметров, выводит файловый браузер, в котором после предварительного сканирования (с показом прогресса выполнения) отображается список элементов и подкаталогов текущего каталога. По этому списку можно перемещаться, используя клавиши курсора, спускаться в подкаталоги () выходить из них, при этом информация о размере представленных элементах и папок отображается «как на ладони». В строке состояния отображается общий используемый объём (Total disk usage), фактический объём (Apparent size), а также количество файлов и папок для текущего анализируемого каталога.
Основные опции команды ncdu:
Интерфейс ncdu действительно очень дружественный — размеры всегда отображаются в «человекопонятных» единицах.
Для работы с псевдоинтерфейсом ncdu предусмотрен целый набор «горячих клавиш», позволяющих удалять выбранные файлы и каталоги, включать режим представления используемого пространства в процентах, отображать информацию о выбранных элементах, а также выполнять другие полезные функции. Об этом более подробно можно прочитать в соответствующих man-страницах в разделе «KEYS», используя команду man ncdu.
Примеры команд ncdu
Сделаем поиск занимаемого пространства с помощью ncdu
ncdu /
Снова видим большой каталог /var, и уже с помощью клавишь и ENTER мы можем передвигаться по каталогам. Видим каталог log
А здесь мы видим наши большие логи
Еще несколько полезных примеров.
Сканирование объёмных каталогов с экспортом/архивированием в лог для последующего использования или просмотра:
$ ncdu -1xo- / | gzip > usage_fs.gz $ zcat usage_fs.gz | ncdu -f-
Сканирование текущей директории, экспорт результатов в лог, и последующий просмотр этих результатов в браузере ncdu:
$ ncdu -o- | tee usage_fs.txt | ncdu -f-
Работа с удалённой системой:
ssh -C username@hostname ncdu -o- / ncdu -f-
В данной команде опция -C используется для утилиты ssh для сжатия сетевого трафика при некачественном или медленном соединении.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Похожие записи:
Как узнать свободное место на диске в Linux
Система
Как узнать свободное место на диске в Linux Ubuntu и других репозиториях? Я перешел из Windows NT в Linux и с нетерпением жду, чтобы получить дополнительную информацию о свободном дисковое пространство в Unix-подобных системах с помощью командной строки. Как оказалось делается все это очень просто.
Как узнать свободное место на диске в Linux
Как Linux, так и UNIX-подобные системы предлагают две команды для проверки свободного места на диске:
(a) Команда df: использование дискового пространства файловой системы отчета.
(b) Команда du: Оцените использование файлового пространства.
Примеры команд df — проверка свободного места на диске
Введите df -h или df -k для отображения свободного места на диске:
Filesystem Size Used Avail Use% Mounted on /dev/sdb1 20G 9.2G 9.6G 49% /
Утилита df отображает статистику о количестве свободного места на диске в указанной файловой системе, частью которой является файл программ. Значения отображаются в 512 байтах на количество блоков. Опция -H называется «удобочитаемой для человека». Он использует суффиксы устройства: байты, килобайты, мегабайты, гигабайты, терабайты и петабайты, чтобы уменьшить количество цифр до четырех или менее, используя базу 10 для размеров, то есть вы видите 30G (30 гигабайт).
Примеры команд Терминала
du показывает, сколько пространства используется в одном или нескольких файлах или каталогах, введите:
Параметр -s суммирует пространство, используемое каталогом, и -h предоставляет «Human-readable» выход.
Программа GUI
Выше программы хороши, если GUI не установлен или вы работаете с удаленной системой по сеансу на основе ssh. Linux и UNIX-подобные oses поставляются с настольной системой KDE и Gnome. Вы найдете Free Disk Space Applet, расположенный под меню GUI. Вот пример из системы Fedora Linux версии 22:
- Анализатор использования диска / Disk Usage Analizer
- Анализатор использования диска для файловой системы / Disk Usage Analizer
Выводы
Надеемся вы поняли, что проверить состояние диска и его свободное пространство очень легко. Если у вас остались какие-то вопросы по теме «Как узнать свободное место на диске в Linux» — пишите их в комментарии.