При работе с сервером важно контролировать занятый объем на диске. Когда дисковая квота заканчивается, в работе VDS возникают ошибки: ошибка 502, удаление файлов при их редактировании, повреждение базы данных. Исправить ошибки можно удалением ненужных файлов или переходом на следующий тариф — то есть увеличением доступной квоты.
Утилиты ncdu и du помогут проверить, чем занято дисковое пространство на сервере.
Ncdu
Утилита ncdu имеет псевдографический интерфейс, что значительно упрощает работу с ней.
Ncdu не предустановлена в дистрибутивах Unix по умолчанию, но ее можно установить командой:
Для того, чтобы просканировать и вывести данные о конкретной директории, используется команда:
Например, чтобы вывести информацию о корневом каталоге, выполняется:
Формат вывода
Количество символов "#" помогает определить, какие файлы и каталоги занимают больше всего места.
Крайний левый столбец может содержать дополнительные обозначения (например, на скриншоте выше - пометки e):
- ! - ошибка при чтении каталога
- . - ошибка при чтении подкаталога, т.е. указанный размер может быть некорректным;
- < - объект исключен из подсчета (с помощью опции --exclude);
- > - объект из другой файловой системы;
- @ - объект не является файлом или каталогом (символическая ссылка, сокет);
- H - объект уже был учтен (жесткая ссылка);
- e - пустой каталог.
Навигация
Для перемещения по директориям используются клавиши со стрелками (вверх и вниз).
- Стрелка вправо или Enter - войти в выбранную директорию.
- Стрелка влево - вернуться в предыдущую директорию.
Доступные функции интерфейса
С помощью клавиш можно управлять полученным выводом:
- n - упорядочить элементы по имени (в прямом и обратном порядке);
- s - упорядочить элементы по размеру (в прямом и обратном порядке);
- g - переключение между отображением "графика" (####) и объёма в процентах:
- 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=/home/user/*.html*
- -о - сохранить результаты в файл:
Du
Утилита du (от англ. disk usage) присутствует во всех UNIX-дистрибутивах по умолчанию и позволяет получить общую информацию о занятом месте.
Команда выводит объем пространства, занимаемого каждым файлом и каталогом в текущем каталоге:
Используемые ключи
Для вывода занятого объема в читаемом виде (в килобайтах, мегабайтах и т.д.) требуется ключ -h, он будет использоваться во всех командах ниже.
- Например, можно начать с оценки размера всех директорий в корневой файловой системе. Для этого добавляются ключи -s (для вывода итогового размера указанной директории) и -c (для вывода "итого"):
- Способ подсчета и сортировки:
- Чтобы узнать размер конкретной директории, используется ключ -s и указывается путь к нужной директории:
- Для вывода размера всех файлов и подкаталогов в каталоге используется ключ -a.
- Для вывода суммарного объема всех показанных в выводе элементов используется ключ -c:
- Можно использовать опцию --exclude, чтобы исключить из вывода конкретный тип файлов.
# Например:
du -ah --exclude="*.php*"
- Еще одна полезная опция - вывод времени последнего изменения файла. Для этого используется --time: