Что занимает место linux

Обновлено: 07.07.2024

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

Описанные варианты ориентированы на командную строку — специально чтобы быть применимыми одновременно и для пользователей с настольными компьютерами, и для администраторов веб-серверов.

1. ncdu для очистки папок

Программа ncdu является одним из самых удобных вариантов — она просто отлично справляется со своими задачами. У неё Ncurses интерфейс, то есть для обычных пользователей это будет просто очень удобно, а для администраторов, обслуживающих удалённые веб-сервера без графического интерфейса она также подойдёт, поскольку Ncurses не требует графического окружения рабочего стола.

Программа очень интуитивная и проста в использовании, достаточно запустить её:

При этом у программы большое количество возможностей и дополнительных функций и оптимизаций, с которыми вы можете познакомиться в статье «ncdu: графический интерфейс du чтобы быстро узнать, какие файлы и папки израсходовали место на диске».


2. Как с помощью du найти самые большие папки

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

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

Вместо <ДИРЕКТОРИЯ> нужно вписать директорию в системе, например, если мы хотим начать с корневой директории:


Эта команда покажет только папки, размер которых измеряется гигабайтами.

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

Пример для анализа всей корневой файловой системы:


В этих командах:

  • опция -P говорит не следовать по символическим ссылкам (это может привести к тому, что файлы будут посчитаны дважды)
  • опция -x означает оставаться на одной файловой системе (очень полезно, не будут посчитаны смонтированные диски, а также диски с виртуальной файловой системой)
  • опция -h печатает размер файлов в простом для восприятия человеком формате
  • sudo для повышения привилегий — позволяет команде считать размер всех директорий и не выводить множество ошибок из-за недостатка прав на чтения папок

Чтобы указать корневую директорию, используйте /, чтобы указать текущую директорию, используйте . (точка). В любой из перечисленных выше команд вы можете указывать определённую папку, чтобы начать сбор информации с неё. Например, когда вы нашли папку с большим размером и хотите узнать больше подробностей о ней, укажите её в одной из команд.

3. Как найти большие файлы

Если есть основания думать, что нехватка места на диске заключается в том, что его заняли какие-то большие файлы (например, файлы логов какого-то приложения) а не множество маленьких файлов, то с помощью команды find можно выполнить поиск файлов, размер которого больше определённого, например:

Эта команда найдёт все файлы, размер которых больше 10 мегабайт.

В этой команде вместо / (означает искать начиная с корневой директории) вы можете указать любую другую директорию. А вместо +10M вы можете указать любое значение и другой префикс, например вместо M (мегабайты) указать G (гигабайты).

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

1-й способ. Утилита du - подсчет занимаемого места.

Воспользоваться встроенной утилитой du. Сделать это достаточно просто. Например, чтобы определить в текущей папке занимаемое место всеми подкаталогами и файлами, нужно использовать команду:

du -sm *

Вывод этой команды будет примерно такой:

Немного поясню использованные ключи:
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

Программа показывает занимаемое папками место, позволяет заходить в них и сразу видеть сколько подпапки занимают места. Так же в этой утилите можно выполнять различные действия над файлами и папками. Получить справку по клавишам управления можно нажав "?". Ниже приведу список некоторых из клавиш управления:

  • 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. Можно конечно найти еще множество других способов, здесь я привел самые основные и распространенные.

Системы на базе UNIX, весьма стабильны, и если они перестают работать корректно, первым делом, необходимо убедиться в наличие свободного дискового пространства. В данной инструкции приведены примеры консольных команд.

Занимаемое место всеми разделами

Базовая команда, которая работает для всех систем семейства UNIX:

* -h добавлено для более читабельного вывода информации по занимаемому месту. Без данной опции информация будет показана в килобайтах.

Примерный результат выполнения команды:

Результат выполнения команды df -h

1 — путь к файловому разделу (диск, внешний накопитель, сетевая шара и так далее).
2 — полный объем раздела.
3 — объем использованного пространства.
4 — сколько еще осталось места.
5 — сколько использовано в процентах.
6 — куда примонтирована файловая система.

Посмотреть занимаемое место папками

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

* в данном примере смотрим все папки корневого раздела (/).

Примерный вывод будет следующий:

Результат выполнения команды du -hd1

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

То же самое с сортировкой по весу папки:

du -d1 / | sort -nr

Вес одной папки и ее содержимого

Отобразить занимаемое место конкретной папки и всего ее содержимого можно следующей командой:

* отобразит занимаемое место каталогом, в котором мы находимся (можно посмотреть командой pwd).

Что чаще всего занимает место на диске

Из данных, которые могут занимать много места, и которые можно чистить, как правило, являются log-файлы — журналы приложений и операционной системы. Это текстовая информация, которая хорошо поддается сжатию. Чтобы автоматизировать процесс чистки логов, воспользуйтесь инструкцией Ротация логов в Linux и FreeBSD с помощью logrotate.

Также место могут занимать временные данные — они находятся в каталоге /tmp.

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

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

В этой инструкции мы рассмотрим несколько способов узнать свободное место на диске linux. Мы рассмотрим как консольные утилиты, так и утилиты с графическим интерфейсом.

Как узнать свободное место в GUI

Новичкам проще обращаться с графическим интерфейсом системы. С него и начнем.

Стандартной утилитой для работы с дисками и разделами в Linux можно считать - Gparted. С помощью этой программы можно не только оценить доступное и использованное место на диске, но и создавать, удалять и изменять размер разделов. Во многих дистрибутивах она уже предустановлена, но если нет, ее можно установить с помощью пакетного менеджера, например, в Ubuntu:

sudo apt-get install gparted

Запускается программа из главного меню. Наберите в поиске gparted или выполните в терминале:

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

gparted

В правом верхнем углу мы можем выбрать диск, с которым хотим работать, а в рабочей области - список разделов на выбранном диске. Здесь указывается название, файловая система, метка, размер и информация об использованном пространстве. Кстати, оценить свободное место можно и визуально, занятое место отмечено желтым, а свободное - белым.

Как я говорил, в этой утилиты еще очень много возможностей, но они выходят за рамки этой статьи.

Узнать свободное место на диске Ubuntu/Gnome можно более простым способом, с помощью утилиты системный монитор. Откройте утилиту системный монитор с помощью Dash или главного меню:

sysmon-ubuntu

Затем перейдите на вкладку файловые системы:

sys-monintor

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

В KDE такая функция не поддерживается системным монитором. Но зато кое-какую информацию можно узнать в утилите информация о системе:

kinfocenter

Также Dolphin, файловый менеджер KDE, позволяет отображать свободное пространство на текущем разделе в строке состояния. Для этого откройте Настроить Dolphin, Главное, Строка состояния и включите галочку Показывать сведения о свободном месте:

dolphin

Вот так это будет выглядеть:

dolphin1

Такая же функция раньше была в Nautilus, но в новых версиях строка состояния в этом файловом менеджере отключена.

Еще один способ выполнить просмотр свободного места на диске linux, это воспользоваться утилитой baobab. Это стандартный дисковый анализатор в Ubuntu, утилита показывает не только занятое и свободное место, но и круговую диаграмму размера папок и файлов на диске, что позволяет очень быстро понять куда же делось место:

baobab

В KDE есть свой аналог, это fileslight, принцип работы такой же.

Чтобы проверить свободное место на диске linux можно использовать виджеты. Их довольно много, так что детально останавливаться на этом не будем.

Узнать свободное место в терминале

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

Утилита df, позволяет проанализировать свободное пространство на всех подключенных к системе разделах:

По умолчанию размер отображается в байтах, чтобы сделать его более читаемым, используйте опцию -h:

df1

Как видите, кроме размера здесь отображается файловая система и точка монтирования.

Если хотите посмотреть только свободное место в определенном каталоге, его можно указать:

df2

Так же само можно указать устройство:

Кроме опции -h утилита поддерживает и другие опции:

  • -m - отображать размер в мегабайтах
  • -T - отображать тип файловой системы
  • -a - включить в список все файловые системы
  • -i - отображать используемые иноды

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

Мы также можем отсортировать вывод, чтобы его было более удобно анализировать:

/Загрузки/ | sort -h

Опция -h указывает, что нужно выводить размер в мегабайтах. Здесь есть еще несколько интересных опций:

  • -b - выдавать размер в байтах
  • -k - показывать размер в килобайтах
  • -m - размер в мегабайтах
  • -x - не учитывать каталоги, находящиеся в других файловых системах.

Выводы

Вот и все, теперь вы знаете как узнать свободное место на диске linux. Конечно, это еще далеко не все способы для решения этой задачи, но этого будет вполне достаточно. Если у вас остались вопросы или вы пользуетесь другим способом, опишите его в комментариях!

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