Совсем недавно я писал про то, как искать файловые дескрипторы и сегодня в продолжение этой темы, расскажу об использовании инодов.
Количество инодов зависит от дискового пространства сервера и очень важно для его корректного функционирования.
Если говорить грубо, то инодом считается каждый файл, каждая директория на сервере. Для того, чтобы узнать, какое количество индексных дескрипторов занято, можно воспользоваться командой:
df -hi
Но мной был найден интересный bash-скрипт, который подсчитывает и выводит статистику по количеству инодов директории, где был запущен. Это может быть полезно для поиска аномальных директорий:
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
Эта длинная команда выведет список поддиректорий с количеством инодов примерно такого плана:
Detailed Inode usage for: /var 68 - backup 138 - cache 1 - cvs 34 - db 13663 - dcc 2 - empty 1 - games 22585 - installatron 77625 - lib 25594 - local 30 - lock 517 - log 1 - lost+found 1004 - named 1 - nis 2 - opt 1 - preserve 21 - profiles 113 - run 1022 - spool 17945728 - suexec 1 - yp Total: 18090303
Последняя строчка - сумма всех найденных инодов в директории.
На своем опыте могу сказать, что в 99% случаях, когда заканчиваются иноды, то директории, в которых следует искать файлы становятся временными директориями, где система хранит файлы сессий или почтовый спул.