Проблема с местом на диске в Linux
Бывает, что на диске есть достаточно много свободного места, но файлы упорно не создаются. В некоторых случаях выскакивает ошбка о том, что на диске закончилось свободное место.
Вы упорно вводите:
df -ha
И не понимаете, что же не так: на диске еще сотня гиг свободно, а файл создать нельзя.
Ключ -i
выведет информацию о доступных инодах:
df -i
У каждого файла и папки на диске есть свой напарник, в котором содержится дополнительная информация о файле. В linux такие напарники
называются инодами (inodes)
Каждый файл и папка имеют права доступа, владельцев, время создания и изменения. Вот эта информация и содержится в инодах.
Как правило, большинство пользователей не знают о том, что количество инодов ограничено до тех пор пока не сталкиваются с проблемами.
Чем больше файлов создано на диске, тем больше используется инодов для хранения информации о них.
Посчитать количество всех инодов используемых в текущем каталоге можно с помощью следующего скрипта:
echo "Inode Usage BreakDown: $(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"
К сожалению количество инод нельзя увеличить без пересоздания файловой системы, так что у Вас проблема, если сервер имеет только один раздел. Указать количество инод можно с помощью ключа -N
в аргументах утилиты mke2fs
.