Ответ
Чтобы проверить количество свободных inode, я использую команду df с ключом -i. Это одна из первых проверок, когда система сообщает «No space left on device», но df -h показывает свободное место — классический случай исчерпания inode из-за миллионов мелких файлов (например, кэша или логов).
Основная команда:
df -i
Вывод показывает по каждой файловой системе:
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 655360 12345 643015 2% /
/dev/sdb1 1310720 980000 330720 75% /var/log
- Inodes — общее количество inode (максимальное число файлов).
- IUsed — использовано inode.
- IFree — свободно inode (это то, что нам нужно).
- IUse% — процент использования, критично при приближении к 100%.
Проверка конкретной точки монтирования:
df -i /home
df -i /var/log
Автоматизация и скрипты: Для мониторинга или проверки в скриптах можно извлечь только число свободных inode:
df -i / | awk 'NR==2 {print $4}'
# Проверка, что свободных inode больше 1000
if [ $(df -i / | awk 'NR==2 {print $4}') -lt 1000 ]; then
echo "ВНИМАНИЕ: Мало свободных inode на корневой файловой системе!"
fi
Если inode закончились: Нужно найти директорию с огромным количеством мелких файлов. Помогает команда:
# Показать топ-10 директорий по количеству файлов (может быть долго)
sudo find /mount/point -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -rn | head -10