Как посмотреть количество свободных inode в Linux
Комментарии (3)
Ответ сгенерирован нейросетью и может содержать ошибки
Проверка количества свободных inode в Linux
Inode (index node) — это структура данных в файловых системах Linux и Unix, которая хранит метаданные о файле (права доступа, владелец, временные метки, указатели на данные), но не включает его имя или содержимое. Каждому файлу, каталогу, символьной ссылке и другим объектам соответствует уникальный inode. Количество доступных inode ограничено и задается при создании файловой системы. Когда inode заканчиваются, невозможно создавать новые файлы, даже если есть свободное место на диске. Поэтому мониторинг свободных inode — важная задача администрирования.
Основные команды для проверки
Самый распространенный инструмент — утилита df, которая отображает информацию об использовании дискового пространства, включая inode.
1. Команда df с ключом -i
df -i
Вывод показывает для каждого смонтированного раздела:
- Filesystem — устройство или раздел.
- Inodes — общее количество inode.
- IUsed — количество использованных inode.
- IFree — количество свободных inode.
- IUse% — процент использования inode.
- Mounted on — точка монтирования.
Пример вывода:
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 524288 87540 436748 17% /
/dev/sda2 2621440 123456 2497984 5% /home
Чтобы отследить конкретный раздел, укажите его точку монтирования или устройство:
df -i /home
df -i /dev/sda1
2. Команда df с человеко-читаемым форматом
df -ih
Ключ -h делает вывод более удобным, переводя числа в кило-, мега- или гига- (K, M, G).
Дополнительные методы
3. Проверка inode для конкретной директории с stat
Команда stat показывает информацию о файловой системе, где расположен указанный путь:
stat -f /home
В выводе ищите строки:
- Inodes: Total — общее количество, Free — свободные.
4. Просмотр деталей файловой системы с tune2fs (для ext2/3/4)
Для файловых систем семейства ext можно использовать tune2fs:
sudo tune2fs -l /dev/sda1 | grep -i inode
Вывод включает:
- Inode count: общее число inode.
- Free inodes: количество свободных inode.
- Inodes per group: inode в группе.
Внимание: tune2fs работает только с непримонтированными разделами или только для чтения, и требует прав root.
5. Использование ls для подсчета файлов
Чтобы понять, сколько файлов (и, соответственно, использованных inode) в директории, используйте:
ls -1a /path/to/dir | wc -l
Но это покажет только видимые объекты, включая скрытые (благодаря -a).
Автоматизация мониторинга и решение проблем
Для DevOps критически важно отслеживать метрики inode в системах мониторинга (Prometheus, Zabbix). Можно создать простой скрипт для проверки и алертирования:
#!/bin/bash
THRESHOLD=90
USAGE=$(df -i / | awk 'NR==2 {print $5}' | sed 's/%//')
if [ $USAGE -gt $THRESHOLD ]; then
echo "Warning: inode usage on / is ${USAGE}%" | mail -s "Inode Alert" admin@example.com
fi
Если свободные inode заканчиваются, причины обычно:
- Огромное количество маленьких файлов (кеш, лог-файлы, сессии).
- Утечка inode из-за неочищенных удаленных файлов, удерживаемых запущенными процессами.
Решение:
- Найти директории с большим числом файлов:
sudo find /mount_point -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n. - Очистить кеши, логи, временные файлы.
- Пересоздать файловую систему с увеличенным количеством inode (опция
-Nвmkfs), если проблема хроническая.
Таким образом, регулярная проверка свободных inode через df -i — обязательная практика для поддержания стабильности Linux-серверов.