Inodes, или индексные дескрипторы («описатели») — это структуры данных в системах Unix, используемые для хранения информации о файлах и каталогах. Так как дескрипторы являются, по сути, данными о данных, их также называют метаданными.
Inodes хранят такие свойства файла, как его размер, информацию о владельце, группу, к которой принадлежит файл, права доступа, счетчик жестких ссылок, место, где на данный момент располагается содержимое файла, временные отметки (время последней модификации файла, последнее время доступа к файлу и т.д.) и пр. Другими словами, дескриптор содержит в себе всю информацию о файле, кроме его имени и содержимого.
Чем больше создано файлов, тем больше индексных дескрипторов занято. Чрезмерное количество файлов (например, файлы кэша или почтовая очередь) может привести к отсутствию свободных inodes и, как следствие, к ошибкам в работе сервера и сообщениям о недостаточном дисковом пространстве, несмотря на его фактическое наличие. Решать проблему потребуется удалением ненужных файлов или директорий.
Получить информацию о количестве использованных и занятых дескрипторов можно при подключении по SSH, с помощью следующей команды:
df -hTi
Значения в выводе команды:
Для решения проблемы с недостатком свободных inodes необходимо удалить достаточное число файлов или каталоги с большим числом файлов.
Найти директории, содержащие в себе большое количество файлов, можно с помощью команды ниже.
Ее можно использовать, например, в корневой директории ОС или корневой директории сайта, а дальше при необходимости спускаться ниже и ниже по структуре.
echo "Detailed Inode usage for: $(pwd)" ; for d in `find -maxdepth 1 -type d |cut -d\/ -f2 |grep -xv . |sort`; do c=$(find $d |wc -l) ; printf "$c\t\t- $d\n" ; done ; printf "Total: \t\t$(find $(pwd) | wc -l)\n"
Команда подойдет для серверов с операционными системами Ubuntu, Debian или CentOS. Если вы используете другую ОС и команда не срабатывает — свяжитесь с поддержкой, постараемся помочь.
Удалить ненужные файлы и директории можно с помощью команды rm
. Будьте внимательны при ее использовании.