Ncdu debian как пользоваться

Обновлено: 06.07.2024

Если на вашем жёстком диске закончилось свободное пространство, самый простой способ его освободить - найти и удалить самые большие и при этом ненужные файлы. Такая задача может возникнуть как на сервере, так и на домашнем компьютере, поэтому существуют удобные решения для обоих ситуаций. Способов поиска больших файлов существует очень много.

Как вы уже поняли, в этой небольшой инструкции мы рассмотрим, как найти большие файлы Linux с помощью графического интерфейса или консольных утилит. Будем двигаться от самого простого к более сложному.

Поиск больших файлов Linux

1. GDMap

Несмотря на то, что графических утилит есть около десятка, все они мне не очень нравятся. Например в Gnome можно использовать GDMap, а в KDE - fileslight. Обе утилиты сканируют файловую систему и выводят все файлы в виде диаграммы. Размер блока зависит от размера файла. Чем больше файл или папка, тем больше блок. Для установки GDMap в Ubuntu выполните:

sudo apt install gdmap

Затем запустите утилиту из главного меню. По умолчанию она отображает домашнюю папку. Здесь можно оценить, какие файлы самые увесистые.


2. Утилита ncdu

Это псевдографическая утилита, которая работает в терминале Linux. Она отображает список файлов и директорий по объёму и, что самое интересное, тут же позволяет удалять ненужные файлы. Для установки утилиты выполните:

sudo apt install ncdu

Затем запустите утилиту, передав ей в качестве параметра папку, которую надо просканировать. Можно проверить ту же домашнюю папку:


У утилиты очень простое управление. Для перемещения по списку используйте кнопки со стрелками вверх и вниз, для открытия папки - клавишу Enter, а для удаления файла - кнопку d. Также можно использовать для перемещения кнопки в Vim стиле - h, j, k, l.

3. Утилита du

Если у вас нет возможности устанавливать новые утилиты, может помочь установленная по умолчанию во всех дистрибутивах утилита du. С помощью следующей команды вы можете вывести 20 самых больших файлов и папок в нужной папке, для примера снова возьмём домашнюю папку:

sudo du -a /home/ | sort -n -r | head -n 20


Мы не можем использовать опцию -h для вывода размера в читабельном формате, потому что тогда не будет работать сортировка.

4. Утилита find

С помощью команды find вы тоже можете искать большие файлы Linux. Для этого используйте опцию -size. Например, давайте найдём файлы, которые больше 500 мегабайтов в той же домашней папке:

sudo find /home -xdev -type f -size +500M


Можно пойти ещё дальше - вывести размер этих файлов и отсортировать их по размеру:

find / -xdev -type f -size +100M -exec du -sh <> ';' | sort -rh

Самые большие файлы Linux будут сверху, а более мелкие - ниже.

Выводы

В этой небольшой статье мы разобрались, как выполняется поиск больших файлов Linux. После того, как вы их нашли, остаётся выбрать ненужные и удалить, если подобное происходит на сервере, то, обычно, это логи различных сервисов или кэш. Обратите внимание, что после удаления файлов место в файловой системе может и не освободится. Для полного освобождения места следует перезагрузить компьютер. Это довольно частая проблема на серверах и VPS.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

ncdu — это NCurses Disk Usage, то есть известная программа du с интерфейсом curses, она поможет определить, какие директории используют ваше место на диске.

Размер программы 81 килобайт и она супер простая в использовании. Многие пользователи оценили эту программу и сравнивают её с WinDirStat для Linux — абсолютно идеально подходит для оценки потребления диска и для сценариев поиска папок и файлов, которые можно удалить когда закончилось место на диске.

Как установить ncdu

Программа ncdu присутствует во многих дистрибутивах в стандартных репозиториях.

Для установки ncdu в Linux Mint, Ubuntu, Debian, Kali Linux и их производные выполните:

Для установки ncdu в Arch Linux, BlackArch и их производные выполните:

Как пользоваться ncdu

Использование программой элементарное, для сканирования и обзора текущей директории, в которой вы находитесь, просто запустите программу:


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

Чтобы просканировать всю файловую систему — например, вашу корневую файловую систему, то нужно указать путь — для корня это / (слэш). Также пригодиться опция -x — она говорит программе не выходить за пределы текущей файловой системы, то есть считать только файлы и директории на том диске, который сканируется. Дело в том, что к корневой файловой системе могут быть смонтированы другие диски — и без этой опцией они также будут посчитаны.


Управление ncdu

У ncdu псевдографический интерфейс с которым можно взаимодействовать с помощью клавиш.

Для выхода из программы нажмите q.

Для перемещения по каталогам используйте курсорные клавиши вверх-вниз, либо кнопки j (вниз) и k (вверх).

Для перехода в выбранную директорию используйте одну из следующих кнопок:

Для возврата в родительскую директорию используйте одну из следующих кнопок:

Также в родительскую директорию можно перейти нажав на .. (две точки) с помощью ENTER, курсора вправо или l.

Для сортировки директорий и файлов используются следующие кнопки:

  • n — сортировка по имени файла (нажмите ещё раз для обратного порядка)
  • s — сортировка по размеру файла (нажмите ещё раз для сортировки по возрастанию)
  • C — сортировка по количеству элементов (нажмите ещё раз для сортировки по возрастанию)
  • M — сортировать по времени модификации (mtime) последнего дочернего элемента (нажмите ещё раз для сортировки в обратном порядке). Для этой функции требуется запустить программу с флагом -e — о нём будет рассказано ниже. Смотрите также «Время создания, доступа и изменения файла: что это, как их узнать и изменить. Как найти файлы по их времени создания, изменения или последнему открытию».

t — для показа директорий перед сортировкой файлов

Для файловых систем есть такие понятие как действительный размер файла и место, занимаемое им на файловой системе — эти значения не всегда равны по разным причинам. Для переключения между этими двумя режимами, нажимайте кнопку a.

Переключателем g можно изменять вид: проценты, граф, оба варианта или ничего. Процент относится к размеру текущего каталога, граф — к наибольшему элементу в текущем каталоге.

Переключателем c можно включать и отключать показ счётчика дочерних элементов.

Переключатель m показывает последнее время модификации (mtime) дочернего элемента. Требует флаг -e.

С помощью кнопки e можно показать/скрыть «скрытые» или «исключённые» файлы и каталоги. Обратите внимание, что, хотя вы не можете видеть скрытые файлы и каталоги, они все ещё там, и они все ещё включены в размеры каталогов. Если вы подозреваете, что итоги, показанные внизу экрана, неверны, убедитесь, что вы не включили эту опцию.

Чтобы показать информацию о текущем выбранном элементе, нажмите i.

Для обновления/пересчёта текущей директории, нажмите r.

Для запуска оболочки в текущей директории нажмите кнопку b.

Обозначение папок и файлов в ncdu

Записям, по которым вы переходите в интерфейсе обзора, может предшествовать односимвольный флаг. Эти флаги имеют следующее значение:

! - во время чтения этой директории произошла ошибка.

. - произошла ошибка во время чтения поддиректории, поэтому указанный размер может быть неверным.

< - файл или директория исключены из статистики по используемому шаблону исключения.

> - директория находится на другой файловой системе (на другом диске или является виртуальной файловой системой).

@ - это не файл и не папка (символическая ссылка, сокет, …).

H — такой же файл уже был посчитан (жёсткая ссылка).

e — пустая директория.

Как включить режим расширенной информации в ncdu

Для включения режима расширенной информации нужно при запуске программы указать опцию -e. Это приведёт к тому, что кроме обычной информации о файле, для каждой папки и файла также будут прочитаны данные о его владельце, правах доступа и о времени последнего изменения. Это потребует большего использования памяти (примерно на 30%) и большего размера файла вывода при экспорте данных:


При использовании функции экспорта/импорта файлов этот флаг необходимо будет добавить как при экспорте (чтобы убедиться, что информация добавлена в экспорт), так и при импорте (чтобы прочитать эту дополнительную информацию в память). Этот флаг не действует при импорте файла, который был экспортирован без расширенной информации.

Это позволяет просматривать и сортировать по последнему дочернему mtime или времени изменения, используя кнопки «m» и «M» соответственно.

Опции интерфейса

-0

Не выводить какую либо информацию во время сканировании директории или импорте файла. Исключением являются произошедшие фатальные ошибки. Ncurses не будет инициализирован пока не завершиться сканирование. Когда экспортируются данные с опцией "-o", ncurses не будет инициализирован вовсе. Эта опция применяется по умолчанию при экспорти из стандартного ввода.

-1

Похожа на "-0", но показывает информацию о процессе сканирования одной строкой вывода. Эта опция применяется по умолчанию при экспортировании в файл.

В некоторых случаях интерфейс браузера ncurses, который вы увидите после завершения сканирования/импорта, может выглядеть искажённым при использовании этой опции. Если вы не экспортируете в файл, то опция «-2», вероятно, является лучшим выбором.

-2

Эта опция предоставляет полноэкранный интерфейс ncurses во время сканирования директорий или импорта из файла. Только этот интерфейс будет предоставлять информацию о нефатальных ошибках во время сканирования.

-q

Тихий режим. Во время сканирования или импорта, ncdu по умолчанию будет обновлять экран 10 раз в секунду. Эта опция включит тихий режим, во время которого обновление экрана будет уменьшено до каждых 2 секунд.

Используйте эту функцию для сохранения пропускного канала с удалённым хостом (при анализе другого компьютера). Эта опция не имеет эффекта когда используется "-0".

-r

Режим только чтение. Он отключит встроенную возможность удаления файла. Эта опция не имеет эффекта когда используется "-o", поскольку в этом случае не будет браузера интерфейса.

Она не имеет эффекта когда используется "-f", поскольку в этом случае функция удаления всё равно отключена.

Внимание: эта опция предотвратит только удаление из файлового браузера. По прежнему возможно открыть шелл из ncdu и удалить или изменить файлы оттуда. Для отключения и этой функции, укажите опцию "-r" дважды (смотрите "-rr").

-rr

Эта опция в дополнении к эффекту "-r", также отключит возможность открытия шелла из файлового браузера.

--si

Выводит размеры используя префикс 10, то есть, степеней от 1000 (KB, MB и т. д.) как определено в International System of Units (SI), вместо обычных префиксов на основе 2, то есть степеней 1024 (KiB, MiB и т.д.).

--confirm-quit

--color СХЕМА

Выбрать цветовую схему. В настоящее время распознаются только две схемы: off для отключения цветов (применяется по умолчанию) и dark для цветной схемы предназначенной для тёмных фонов.


Опции сканирования

Эти опции оказывают эффект на процесс сканирования и не имеют эффекта во время импортирования информации о директориях из файла.

-x

Уже рассмотрена выше — означает не учитывать другие смонтированные файловые системы.

--exclude ШАБЛОН

Исключает файлы, которые совпадают с ШАБЛОНом. Эти файлы по умолчанию будут отображены, но не будут посчитаны для статистики использования диска. Этот аргумент может быть добавлен несколько раз для добавления нескольких шаблонов.

-X ФАЙЛ, --exclude-from ФАЙЛ

Исключить файлы, которые соответствуют любому шаблону в ФАЙЛе. Шаблоны должны быть разделены новой строкой.

--exclude-caches

Исключить директории, содержащие CACHEDIR.TAG. Эти директории всё равно будут отображены, но не их содержимое, и они не будут считаться для статистики использования диска.

-L, --follow-symlinks

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

Как экспортировать информацию об использовании диска и импортировать для анализа

Для этого используются опции -o ФАЙЛ (для экспорта данных в файл) и -f ФАЙЛ (для импорта данных в файл).

-o ФАЙЛ

Экспортирует всю необходимую информацию в ФАЙЛ вместо открытия его в интерфейсе браузера. Если в качестве ФАЙЛа указано "-", то данные пишутся в стандартный вывод.

-f ФАЙЛ

Загружает указанный файл, которые ранее был создан с опцией "-o". Если ФАЙЛ указан как "-", то происходит считывание из стандартного ввода.

В целях предотвращения путаницы, текущая версия ncdu подразумевает ,что информация из этого файла не связана с файловой системой на анализируемом компьютере, где файл был импортирован. То есть, такие опции как обновление, удаление файлов и запуск шелла в браузере будут отключены.

Поскольку сканирование большой директории может занять много времени, вы можете просканировать папки и экспортировать результаты для дальнейшего обзора:

Вы также можете одновременно экспортировать директорию и изучать её содержимое сразу как сканирование будет завершено:

Это же самое возможно и при сжатии gzip, но немного запутанно:

Для удалённого сканирования системы, но изучения её файлов локально:

Опция "-C" в ssh включает сжатие, которое будет очень полезным при медленных соединениях. Удалённое сканирование и локальное изучение имеют два больших преимущества по сравнению с запуском ncdu непосредственно на удалённой системе: вы можете бродить по папкам просканированной директории на локальной системе без каких-либо сетевых задержек; и ncdu не хранит всю структуру директорий в памяти при экспортировании, поэтому вы не будете потреблять много памяти на удалённой системе.

Использование ncdu с cron

Для экспорта по заданию работы cron, убедитесь, что заменили "-1" на "-0" для подавления любого необязательного вывода.

При работе с сервером важно контролировать занятый объем на диске. Если дисковое пространство окажется занято полностью, в работе VDS начнут возникать ошибки (ошибка 502, удаление файлов при их редактировании, повреждение базы данных). Чтобы этого избежать, необходимо своевременно увеличивать доступный объем, удаляя ненужные файлы или расширяя сам диск.

Для того, чтобы проверить, чем занято дисковое пространство на сервере, можно воспользоваться такими утилитами, как ncdu и du. Работать с ними достаточно просто. При анализе также может потребоваться проверить данные о файловой системе и inodes (подробнее об этом в последнем разделе этой статьи).

Утилита ncdu - один из самых удобных инструментов для анализа дискового пространства. Она имеет псевдографический интерфейс, что значительно упрощает работу с ней.

Ncdu не предустановлена в дистрибутивах Unix по умолчанию, но ее легко можно установить командой:

Если дисковое пространство уже переполнено и установить ncdu невозможно, можно сначала воспользоваться утилитой du, удалить несколько файлов, чтобы освободить немного места, после чего поставить ncdu и дальше продолжить работать с ней.

Для того, чтобы просканировать и вывести данные о конкретной директории, воспользуйтесь командой:

Например, чтобы вывести информацию о корневом каталоге, выполните:


Формат вывода

Крайний левый столбец может содержать дополнительные обозначения (например, на скриншоте выше - пометки e):

  • ! - ошибка при чтении каталога;
  • . - ошибка при чтении подкаталога, т.е. указанный размер может быть некорректным;
  • < - объект исключен из подсчета (с помощью опции --exclude);
  • > - объект из другой файловой системы;
  • @ - объект не является файлом или каталогом (символическая ссылка, сокет);
  • H - объект уже был учтен (жесткая ссылка);
  • e - пустой каталог.

Навигация

Для перемещения по директориям используются клавиши со стрелками (вверх и вниз).

Стрелка вправо или Enter - войти в выбранную директорию.

Стрелка влево - вернуться в предыдущую директорию.

Доступные функции интерфейса

С помощью следующих клавиш можно управлять полученным выводом:

n - упорядочить элементы по имени (в прямом и обратном порядке);

s - упорядочить элементы по размеру (в прямом и обратном порядке);


a - переключение между отображением реального размера файлов и объемом занимаемого пространства на диске;

e - скрыть/показать скрытые файлы и папки;

? - вызвать краткую справку;

d - удалить выбранный элемент (перед удалением будет запрошено подтверждение действия);

i - вывести информацию о выбранном элементе:


q - выйти.

Используемые ключи

Также при запуске утилиты можно использовать дополнительные ключи для ncdu:

-h (т.е. команда вида ncdu -h) - вывод краткой справки;

-q - "тихий режим", с обновлением данных каждые 2 секунды. По умолчанию обновление выполняется 10 раз в течение секунды. Тихий режим позволяет снизить объем передачи данных при удаленных подключениях;

-r - режим "только для чтения", в данном режиме невозможно удаление файлов;

--exclude - исключение файла или типа файлов. Ncdu отобразит эти файлы в общем списке, но не будет учитывать их при подсчете занятого пространства:

-о - сохранить результаты в файл:

Утилита du (от англ. disk usage) присутствует во всех UNIX-дистрибутивах по умолчанию и позволяет получить общую информацию о занятом месте.

При выполнении команды она выводит объем пространства, занимаемого каждым файлом и каталогом в текущем каталоге:


Используемые ключи

Для вывода занятого объема в читаемом виде (в килобайтах, мегабайтах и т.д.) требуется ключ -h, мы будем использовать его во всех командах ниже.

  • Например, можно начать с оценки размера всех директорий в корневой файловой системе. Для этого добавим ключи -s (для вывода итогового размера указанной директории) и -c (для вывода "итого"):


  • Полезный и удобный способ подсчета и сортировки:


  • Чтобы узнать размер конкретной директории, используйте ключ -s и указывайте путь к нужной директории:


  • Для вывода размера всех файлов и подкаталогов в каталоге используйте ключ -a.


  • Для вывода суммарного объема всех показанных в выводе элементов используется ключ -c:


  • Можно использовать опцию --exclude, чтобы исключить из вывода конкретный тип файлов.


  • Еще одна полезная опция - вывод времени последнего изменения файла. Для этого используется --time:


Несоответствие данных du, ncdu и ПО

Иногда можно столкнуться с ситуацией, когда утилиты du и ncdu показывают меньший объем, чем выводится в панели управления; либо же вы удаляете файлы, но ваше ПО сообщает, что свободного пространства по-прежнему недостаточно.

В этом случае для проверки стоит воспользоваться командой df, которая позволит получить данные именно о файловой системе (в то время как du и ncdu показывают именно физический объем на диске):

Вероятнее всего, в выводе будет информация о занятости 100% пространства.

Это связано с тем, что иногда при удалении файла он остается доступен какому-либо запущенному процессу, из-за чего файловая система по-прежнему учитывает его в общем объеме занятого пространства.

Чтобы решить проблему, нужно определить, какими процессами все еще используются удаленные файлы:

После чего перезапустить эти процессы:

Оценка состояния жестких дисков — одна из самых актуальных задач, с которыми приходится сталкиваться не только в Windows, но и в Linux . Еще в большей мере это касается анализа используемого дискового пространства, которое, нередко оказывается заполненным ненужными файлами. Для оценки, равно как и для анализа дискового пространства в Linux рядовые пользователи традиционно предпочитают профильные утилиты с графическим интерфейсом.

Однако с точки зрения системного администратора, использование инструментов с GUI есть ничто иное как трата времени и ресурсов, ведь все эти под час разные процедуры по обслуживанию можно выполнить из единой командной строки. Утилита, с которой мы сегодня предлагаем вам познакомиться, работает как раз из консоли, не уступая по функционалу приложениям с продвинутым графическим интерфейсом. Называется она ncdu.

Ncdu

Наименование утилиты расшифровывается как NCurse Disk Usage, где NCurse — указание на использование инструментом библиотеки ncurses , а Disk Usage — на ее близость к du — встроенной в большинство версия Linux утилите для оценки объема занимаемого дискового пространства, от которой ncdu отличается значительно большим удобством, предлагая к использованию псевдографический интерфейс, позволяющий быстро перемещаться по древовидной структуре каталогов.

Установка и запуск

Инсталляция ncdu выполняется через терминал командой sudo apt-get install ncdu , также вы можете попробовать установить утилиту через Центр приложений.

Apt-get install ncdu

Запускается же утилита через тот же терминал одноименной командой ncdu .

Будучи запущенной без параметров, ncdu сканирует содержимое текущего каталога с отображением прогресса.

Ncdu

И выводит его в виде списка с указанием относительного пути и размера каждого объекта.

Ncdu

В расположенной внизу панели указывается общий и фактический (Apparent size) размер текущего каталога, а также количество имеющихся в нём элементов, включая папки и файлы.

Для навигации по файловой системе в ncdu используются клавиши-стрелки. Клавиши вверх-вниз служат для выбора объекта, клавиши вправо-влево — для входа в выбранные каталоги и выхода из них.

Ncdu

Также для входа в папки можно использовать Enter . Помимо клавиш-стрелок и ввода, утилитой поддерживается еще целый ряд «горячих» клавиш, упрощающих работу с приложением.

Вот некоторые из них:

n и s — сортировка по имени и размеру;
d — удаления выделенного объекта;
k и j — то же, что и клавиши вверх-вниз;
i — вывод сведений о файле или папке;
e — показ только скрытых файлов;
g — переключение в режим отображения занятого места в процентах;
a — переключение в режим отображения реального занятого места на диске в байтах;
r — повторный расчет занимаемого места;
q и b— выход из программы в консоль.

Ncdu

Для расширения возможностей ncdu используются аргументы или параметры. Указываются они после команды через дефис по отдельности или вместе, например, ncdu -q или ncdu -1xo .

Вот наиболее востребованные аргументы ncdu:

-0 — отключает вывод информации при сканировании файловой системы;
-1 — изменяет режим вывода информации при сканировании файловой системы;
-q — включает тихий режим сканирования, обычно используется при работе с удаленными системами;
-r — данные в консоли выводятся в режиме «только для чтения», что предотвращает случайное удаление файлов и папок;
-o путь к файлу — экспорт результатов работы в лог;
-f путь к файлу — вывод данных из созданного ранее лога;
-- exclude шаблон — исключает из результатов сканирования размер объектов, названия которых соответствует маске шаблона, однако сами объекты отображаются в списке.

Ncdu

Ncdu

Чтобы получить больше информации о поддерживаемых аргументах и «горячих» клавишах, выполните в терминале команду man ncdu , она выводит справку по утилите.

Ncdu

Да, стоит упомянуть, что использовать ncdu можно не только для анализа Linux-, но и в Windows-разделов. Если Windows установлена параллельно с Linux, вы можете выполнить в последней команду ncdu /media , перейдя таким образом в корень диска и получив доступ к смонтированным томам с Windows.

Ncdu

Ncdu

Также ncdu может использоваться для анализа содержимого дисков на компьютерах под управлением Windows 10 при условии, что в ней будет активирован компонент WSL . Установив из Windows Store дистрибутив Debian или другую популярную версию Linux, вы сможете запускать ncdu из-под нее, получая доступ к файловой системе разделов С и D хостовой операционной системы.

Читайте также: