Исчезают иноды

26

Я не могу обновить Ubuntu, потому что я использую 99% inode. Как мне легче всего решить эту проблему?

Спасибо за вашу помощь.

xaav
источник
2
Очень похожий вопрос был задан на StackOverlow. Может быть, это поможет stackoverflow.com/questions/653096/howto-free-inode-usage
Также похоже здесь на AskUbuntu .
Пабло А

Ответы:

24

Количество инодов устанавливается во время форматирования раздела. Обычно количество созданных инодов достаточно для почти любой цели; однако, если у вас есть большое количество очень маленьких файлов, вы можете использовать иноды до того, как диск заполнится.

Вам нужно найти много тысяч маленьких файлов, которые у вас есть в системе, которые используют иноды, и либо удалить их, либо переместить их в раздел, который был специально настроен с очень большим количеством доступных инодов. Невозможно изменить количество доступных inode для раздела после его форматирования.

Сценарий, написанный paxdiablo для stackoverflow, может быть удобным способом проверки чрезмерного использования небольших файлов, о которых вы можете не знать. Здесь это снова:

#!/bin/bash
# count_em - count files in all subdirectories under current directory.
echo 'echo $(ls -a "$1" | wc -l) $1' >/tmp/count_em_$$
chmod 700 /tmp/count_em_$$
find . -mount -type d -print0 | xargs -0 -n1 /tmp/count_em_$$ | sort -n
rm -f /tmp/count_em_$$

Поместите этот скрипт в текстовый файл ~ / bin / count_em и затем введите команду

chmod +x ~/bin/count_em

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

Для запуска программы просто наберите

count_em

и он перечислит номера всех файлов в текущем каталоге и подкаталогах по каталогам, причем наибольшее количество будет последним. Очень удобно!

fabricator4
источник
ЭТА ЛИНИЯ> chmode + x ~ / bin / count_em на самом деле> chmod + x ~ / bin / count_em
1
необходимо ли удалить все эти файлы, созданные пользователем, или их перемещение в архив tar поможет?
августа
Архивирование их - отличный способ справиться с этим, оно не удаляет данные пользователей, но заставляет их осознавать, что их поведение не является удовлетворительным, поскольку они не смогут использовать файлы, как раньше. Хотя есть вероятность, что огромное количество файлов генерируется чем-то, что никто не использует, и их можно безопасно удалить, но это риск.
LovesTha
Хорошая однострочная альтернатива вашему сценарию может бытьsudo du -a -d 1 --inodes . | sort -nr | head -20
Чарльз Грин
1
Конечно, это не сработает, если у вас полностью нет inode, поскольку он создает временные файлы :(
Molomby
8

Вы также можете отобразить отсортированный список каталогов по количеству inode, используя эту команду: du --inodes -d 3 / | sort -n | tail

Оттуда вы можете определить, какие каталоги удалять

johnL
источник
1
unrecognized option '--inodes'на Ubuntu 14.04, fyi
Molomby
Почему вы используете убунду 14.04 в 2019 году? Я вижу, что он имеет coreutils 8.21 с февраля 2013 года, --inodesопция была добавлена ​​июль 2013 года lmao
ZN13
2

Я обнаружил, что использование inode происходит из /root/.local, и удалил эту папку.

xaav
источник
2
Ничего особенного не следует использовать /root/.local, и это только для совместимости. Вам нужно выяснить, что записывало много маленьких файлов в этот каталог.
fabricator4