- Чем занято место на диске Linux
- 1-й способ. Утилита du — подсчет занимаемого места.
- 2-й способ. Утилита ncdu — анализ занятого места и его освобождение
- 3-й способ. Графические утилиты.
- Анализ дискового пространства в Linux – команды du и ncdu
- как посмотреть свободное место на диске
- Команда du – синтаксис и опции
- Примеры использования команды du
- Команда ncdu
- Примеры команд ncdu
- Похожие записи:
Чем занято место на диске Linux
Ситуация, когда на разделах Linux заканчивается место может быть очень часто встречаемой. На вебсерверах такая проблема возникает еще чаще, т.к. большое количество посетителей и ошибки в программах могут приводить к огромному росту лог-файлов и т.д. и появляется необходимость определить чем занято место на диске Linux, чтобы удалить ненужные данные и освободить место. Есть несколько вариантов как это сделать.
1-й способ. Утилита du — подсчет занимаемого места.
Воспользоваться встроенной утилитой du. Сделать это достаточно просто. Например, чтобы определить в текущей папке занимаемое место всеми подкаталогами и файлами, нужно использовать команду:
Вывод этой команды будет примерно такой:
514 folder1 893 folder2 44 file1.sh 53 file2.txt
Немного поясню использованные ключи:
s — означает, что нужно вывести суммарное занимаемое место, т.е. например, не показывать каждый файл из папки folder1 и занимаемое им место, а показать, сколько всего места занимают все файлы в папке folder1
m — означает вывод данных в Мб, можно использовать вместо него ключи b (в байтах) и k (в килобайтах)
* — означает подсчитать все объекты в текущем каталоге. Если не указать * , то будет подсчитано все занимаемое место текущего каталога. Так же, можно подсчитать сколько места занимает конкретная папка со всеми файлами и подкаталогами в ней, для чего нужно написать вместо * название нужного каталога.
Когда папок и файлов много, можно отсортировать результаты, чтобы было проще определить, какая папка или файл заняли больше всего места:
du -sm * | sort -n
Эта простая команда поможет вам выяснить, чем занято место в конкретной папке или на всем разделе Linux. Команда универсальна, проста в использовании и есть в любых дистрибутивах Linux.
2-й способ. Утилита ncdu — анализ занятого места и его освобождение
Есть так же и другие способы определить чем занято место на диске, например, очень удобная в плане анализа занятого места — утилита ncdu. Установить ее можно, например, так:
- Для Debian систем (rpm-пакеты) (в т.ч. Ubuntu) командой apt-get install ncdu
- Для Red Hat систем (dpkg-пакеты) командой yum install ncdu
Дальше просто запустите ncdu и подождите, когда она подсчитает занимаемое место. По-умолчанию программа посчитает размеры папкой текущей папки, из которой программа была запущена. Если нужно посчитать какую-то другую папку, просто добавьте к команде путь к папке, например, так: ncdu /var/www. Если нужно посчитать занимаемое место на всем диске, можно использовать ncdu /.
Программа показывает занимаемое папками место, позволяет заходить в них и сразу видеть сколько подпапки занимают места. Так же в этой утилите можно выполнять различные действия над файлами и папками. Получить справку по клавишам управления можно нажав «?«. Ниже приведу список некоторых из клавиш управления:
- d — удалить выбранный файл или папку с файлами;
- n — отсортировать файлы и папки по имени;
- s — отсортировать файлы и папки по объему занимаемого места;
- t — показывать сначала папки, затем файлы;
- g — режим отображения (в процентах, графически, комплексно);
- a — режим отображения (размер файла, занятое место на жестком диске)
- e — включить/отключить отображение скрытых файлов;
- i — показать дополнительную информацию о папке или файле;
- r — заново пересчитать занимаемое место;
- q — выйти из программы;
Программа очень удобная, простая и выполняет задачу по анализу и освобождению свободного места полностью, рекомендую ее к использованию.
3-й способ. Графические утилиты.
Есть большое количество графических программ, которые позволяют делать примерно то же, что ncdu, только в графике. В Ubuntu, например, есть графическая программа, которая находится в Приложения > Системные утилиты > Анализатор использования диска. Кроме того, есть много и других программ. Приведу небольшой список, чтобы вы могли их попробовать и выбрать, какая больше нравится:
- В системах с Gnome обычно есть утилита Baobab, которая графически покажет занимаемое папками место, так же выводит диаграмму;
- Утилита KDirStat для KDE (WinDirStat для Windows) — в отличие от Baobab показывает вместо диаграммы прямоугольники, размер которых соответствует занимаемому папками пространства;
- Gd Map — аналог KDirStat для Gnome;
- Filelight и Philesight — аналоги Baobab (показывает папки в виде диаграммы).
Вот пожалуй, основной набор способов определения занятого места на дисках Linux. Можно конечно найти еще множество других способов, здесь я привел самые основные и распространенные.
Анализ дискового пространства в 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.