Page tree

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

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

ncdu

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

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

# Для Debian / Ubuntu:
apt install ncdu
 
# Для CentOS:
yum install ncdu
Если дисковое пространство уже переполнено и установить ncdu невозможно, можно сначала воспользоваться утилитой du, удалить несколько файлов, чтобы освободить немного места, после чего поставить ncdu и дальше продолжить работать с ней.

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

ncdu имя_каталога

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

ncdu /

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

Количество символов "#" помогает определить, какие файлы и каталоги занимают больше всего места.

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

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

Навигация

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

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

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

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

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

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

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

- переключение между отображением "графика" (####) и объёма в процентах:

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

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

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

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

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

q - выйти.

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

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

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

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

-x - учет при сканировании только файлов и директорий одной и той же файловой системы. Например, если есть директория home/user/site.com, и пространство с файлами и директориями внутри нее примонтировано из директории на другом диске (/mnt/disk2/site.com), то по умолчанию ncdu посчитает, что директория /home/user/site.com занимает пространство на основном диске, хотя на самом деле - на диске disk2. Использование ключа -x позволит отразить действительное положение дел на основном диске.

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

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

ncdu --exclude=/путь/к/каталогу/*что_исключаем*
 
#Например:
ncdu --exclude=/home/user/*.html*

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

ncdu / -o путь/к/файлу.txt

du

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

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

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

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

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

  • Полезный и удобный способ подсчета и сортировки:
du -sch ./*|sort -hr

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

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

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

  • Можно использовать опцию --exclude, чтобы исключить из вывода конкретный тип файлов.
du -ah --exclude="*что_исключаем*"
 
# Например:
du -ah --exclude="*.html*"

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

  • No labels