Использование индексных дескрипторов

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

Что такое иноды можно прочитать в нашей энциклопедии хостинга. Их количество зависит от дискового пространства сервера и очень важно для его корректного функционирования.

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

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

Автор статьи:

Сабынич Вадим

Аватар пользователя vadim s. sabinich
Вернуться