как видим у нас диск занят на 97%, и нам необходимо узнать что у нас заняло место. Давайте этим займемся.
Disk Usage – именно так интерпретируется название команды du. Она была написана ещё в самой первой версии UNIX (в определённом роде предшественницы Linux), еще в стенах одной из лабораторий компании AT&T. Этот факт даёт понять, насколько важно следить за дисковым пространством, а также анализировать его при наличии специализированных программных инструментов, ведь du – одна из самых первых утилит из стандартного комплекта UNIX/Linux.
Итак давайте узнаем что у нас занимает место
Более подробное описание команды du и ключей вы можете прочитать ниже. Вывод будет следующий
Отсюда мы видим что самый большой каталог у нас /var. Посмотрим что у на занимает место в каталоге /var
видим что это папка log
Теперь смотрим /var/log
и вот здесь мы уже видим пять самых больших файлов с логами, именно они и заняли все место на диске. Давайте рассмотрим команду du подробнее.
Согласно описанию из официального man-руководства, утилита du суммирует использование дискового пространства набора элементов, рекурсивно с каталогами. Синтаксис команды не простой, а очень простой, поскольку представляет собой классический прототип команды Linux:
Если дать команду du без параметров, то по-умолчанию будет выведен список всех каталогов и подкаталогов для текущего каталога. Также по-умолчанию единицей измерения объёма является 1024 байта или 512 байт, в зависимости от конфигурации используемой системы:
Как видно, code_text.txt занимает 4 килобайта (т. к. 1024 байта = 1 килобайт) дискового пространства. То же самое и с папками, но по-умолчанию будет указан общий размер папки без детализации по файлам и подкаталогам. В следующей таблице приведены опции команды du:
Опция | Назначение |
-a | Выводит объём для всех элементов, а не только для каталогов |
—apparent-size | Выводит действительные размеры, но не занимаемое место а диске |
-B, —block-size=РАЗМЕР | Задаёт использование определённых единиц измерения объёма |
-b, —bytes | То же самое, что и «—block-size —apparent-size=1» |
-с, —total | Выводит общий результат |
-D, —dereference-args | Указывает обрабатывать только те символьные ссылке, которые перечислены в командной строке |
-d, —max-depth=N | Выводит общий размер только до N-го уровня (включительно) дерева каталогов |
-h, —human-readable | Выводит размеры в удобном для человека виде |
-k | Эквивалентно —block-size=1K |
-L, —dereference | Разыменовывает символьные ссылки |
-l, —count-links | Складывает размеры, если несколько жёстких ссылок |
-m | Эквивалентно —block-size=1M |
-t, —threshold=РАЗМЕР | Исключает элементы, которые меньше РАЗМЕРА, если это значение положительно или размер которых больше, если это значение отрицательно |
—time | Выводит время последнего изменения в каталоге и во всех подкаталогах |
—time=АТРИБУТ | Выводит указанный атрибут времени (atime, access, use, ctime, status), а не время последнего изменения |
—time-style=СТИЛЬ | Выводит время в указанном в СТИЛЬ формате: full-iso, long-iso, iso |
-X, —exclude-from=ФАЙЛ | Исключает все эдементы, которые совпадают с шаблоном из ФАЙЛа |
—exclude=ШАБЛОН | Исключает элементы, совпадающие с шаблоном |
-x, —one-file-system | Пропускать каталоги из других систем |
Используемые командой du единицы измерения размера (или объёма) задаются в формате «цифраБуква», где цифра — это коэффициент, а Буква — степень единицы измерения, например: 5K = 5 * 1024 = 5120 = 5 килобайт и по аналогии для M – мегабайт, G – гигабайт.
Узнать общий размер каталога (например с резервными копиями):
Вывод размеров всех подкаталогов (рекурсивно):
С учётом файлов:
С фильтрацией в зависимости от размера файла/каталога:
Как видно, были отброшены файлы/каталоги размером меньше 2 мегабайт. Следующая команда, напротив — исключит из вывода только файлы/каталоги больше 2 мегабайт:
Более удобный способ найти что занимает место на диске можно с помощью команды ncdu. Утилита ncdu (Ncurses Disk Usage) способна делать всё то же самое, что и утилита du и даже немного больше. К тому же, она предоставляет пользователю удобный в использовании псевдографический интерфейс, с помощью которого можно быстро перемещаться по дереву системы, оценивая размеры интересующих элементов и папок.
Фактически, ncdu может выполнять функции полноценного браузера системы, при этом имеет большое количество опций, позволяющих настраивать псевдоинтерфейс для разных режимов работы, экспортировать и импортировать результаты работы в файлы, выполнять сортировки, экономить сетевой трафик, если это нужно, когда анализируется удалённая (например по SSH) система.
По-умолчанию, выполнение команды ncdu без параметров, выводит файловый браузер, в котором после предварительного сканирования (с показом прогресса выполнения) отображается список элементов и подкаталогов текущего каталога. По этому списку можно перемещаться, используя клавиши курсора, спускаться в подкаталоги ( ) выходить из них, при этом информация о размере представленных элементах и папок отображается «как на ладони». В строке состояния отображается общий используемый объём (Total disk usage), фактический объём (Apparent size), а также количество файлов и папок для текущего анализируемого каталога.
Основные опции команды ncdu:
Опция | Назначение |
-o ФАЙЛ | Позволяет экспортировать результаты работы в указанный файл |
-f ФАЙЛ | Загружает из файла для отображения данные ранее экспортированные с помощью опции -o |
-0 | Не никаких информационных сообщений при сканировании файловой системы |
-1 | Подобна опции -0, но выдаёт единственную строку о статусе выполненного действия. По-умолчанию используется при экспорте в файл |
-q | Тихий режим. Во время сканирования директории экран с результатами сканирования будет обновляться каждые 2 секунды, вместо 10 раз за секунду. Обычно используется при работе с удаленными системами |
-r | Включает режим «только для чтения» для отключения встроенной функции удаления. Не работает с опцией -o |
-x | Не выходить за рамки текущей используемой файловой системы |
—exclude ШАБЛОН | Исключает из подсчёта значения размеров файлов, имена которых удовлетворяют шаблону, но эти файлы будут отображаться в списке |
-X ФАЙЛ, —exclude-from-file | Исключает из подсчёта значения размеров файлов, имена которых удовлетворяют шаблону из файла, но они также будут отображаться в списке |
Интерфейс ncdu действительно очень дружественный — размеры всегда отображаются в «человекопонятных» единицах.
Для работы с псевдоинтерфейсом ncdu предусмотрен целый набор «горячих клавиш», позволяющих удалять выбранные файлы и каталоги, включать режим представления используемого пространства в процентах, отображать информацию о выбранных элементах, а также выполнять другие полезные функции. Об этом более подробно можно прочитать в соответствующих man-страницах в разделе «KEYS», используя команду man ncdu.
Сделаем поиск занимаемого пространства с помощью ncdu
ncdu /
Снова видим большой каталог /var, и уже с помощью клавишь и ENTER мы можем передвигаться по каталогам. Видим каталог log
А здесь мы видим наши большие логи
Еще несколько полезных примеров.
Сканирование объёмных каталогов с экспортом/архивированием в лог для последующего использования или просмотра:
Сканирование текущей директории, экспорт результатов в лог, и последующий просмотр этих результатов в браузере ncdu:
Работа с удалённой системой:
В данной команде опция -C используется для утилиты ssh для сжатия сетевого трафика при некачественном или медленном соединении.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
du – это инструмент командной строки, поставляемый в Linux, который сообщает об объеме дискового пространства, используемого каталогами и файлами.
Сокращенно от «disk usage», du является основным инструментом для анализа дискового пространства в командной строке.
Запустите команду du с указанием каталога, чтобы увидеть полный анализ дискового пространства, занимаемого каждым каталогом.
Каждый каталог будет перечислен по очереди в стандартном выводе, поэтому большие каталоги или полное сканирование системы может производить десятки тысяч строк и занимать значительное время.
В результате базовая команда du обычно дополняется указанными ниже флагами.
Любой из этих флагов может быть объединен с любым другим, хотя некоторые комбинации исключают друг друга, потому что они противоречивы.
Показывает строку в нижней части вывода du, чтобы указать общий объем дискового пространства, используемого сканируемыми каталогами.
Показывает только сводку общего дискового пространства, используемого указанным каталогом.
Вывод не будет отображаться до тех пор, пока не будет рассчитана сводка.
Профессионалы командной строки признают эту команду, но не каждый профессионал.
Это выведет результаты команды в текстовый файл в текущем рабочем каталоге с именем «du-report.txt».
Направляет отображение в текстовый редактор less, создает более легко читаемый результат, который можно просмотреть с помощью меньшего количества сочетаний клавиш.
Обратите внимание, что размеры файлов обычно округляются при объявлении определенных единиц.
Например, файл 4 КБ будет показан как занимающий ноль мегабайт, если вызывается флаг -m, а файл 750 КБ будет показан как 1 МБ.
Отображать в «удобочитаемом» формате с указанием соответствующих размеров, таких как килобайты, мегабайты и гигабайты, а не стандартный размер блока.
Количество отображаемых блоков считается по 1024 байта (1 килобайт).
Количество отображаемых блоков составляет 1 048 576 байт (1 мегабайт).
Количество отображаемых блоков составляет 1 073 741 824 байта (1 гигабайт).
Отображает (или «разыменовывает») символические ссылки в командной строке и файловых иерархиях.
В противном случае будет сообщаться пространство, занимаемое самой символьной ссылкой (обычно минимум файловой системы), а не дерево каталогов, на которое указывает символическая ссылка.
Показать использование диска для всех файлов, а не только для каталогов.
Показать использование диска одним конкретным файлом, как указано в команде.
Исключить файлы, которые соответствуют любому шаблону в указанной строке.
Исключить файлы и подкаталоги, как указано в шаблоне.
В этом примере все каталоги, включая строку «* .o», будут пропущены.
Обратите внимание, что это шаблоны оболочки, а не регулярные выражения.
Таким образом, управляющие символы ограничены *, который соответствует любой строке из нуля или более символов, и ?, который соответствует любому одному символу.
Это исключит эти файлы из расчетов размера каталога.
Если используется флаг -a, исключенные файлы будут пропущены в результате.
Исключить записи, которые меньше SIZE, если положительные, или записи, которые больше SIZE, если отрицательные.
SIZE является целым числом и занимает (необязательно) единицу.
Например, –threshold = 1 МБ пропустит все файлы размером менее 1 мегабайта (1000 ^ 2 байта).
Единицы включают K, M, G, T, P, E, Z, Y для степеней 1024 (кибибайт, мебибайт, гибибайт и т. д) или KB, MB, GB, TB,… для более стандартизированных мощностей 1000 ( килобайт, мегабайт, гигабайт и т. д.).
Это может быть полезным инструментом для поиска самых больших файлов в вашей системе с помощью команды типа du –threshold = 1GB.
Установите максимальную глубину N папок.
Этот флаг может принимать любое положительное целое число.
С этим параметром du будет сканировать до двух подкаталогов в указанном каталоге.
Если существуют дополнительные подкаталоги, они не будут сканироваться по отдельности.
Скорее их значение будет включено в сообщаемые папки.
Обратите внимание, что -d 0 выдаст те же результаты, что и флаг -s.
Например, рассмотрим путь к каталогу «dir1/dir2/dir3/dir4», который содержит один родительский каталог и три подкаталога.
При настройке du на du -d 2 dir1 будет сканировать до dir3.
Размер dir3 будет включать файлы в dir4, даже если dir4 не указан отдельно.
Команда du наиболее полезна в сочетании с другими утилитами, такими как командаdu -a / | sort -n -r | head -n 10.
Это выполнит поиск всей вашей файловой системы (du -a /), отсортирует результаты по размеру (sort -n -r), а затем покажет только первые десять результатов (head -n 10).
По сути, это ярлык для десяти самых больших файлов на вашем компьютере.
Объединяйте du с другими командами через pipe, чтобы получить еще более полезные результаты.
Источник