Вичерпання вузлів


26

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

Спасибі за вашу допомогу.


2
Дуже схоже запитання було задано на StackOverlow. Може бути , це допоможе stackoverflow.com/questions/653096/howto-free-inode-usage


Також схоже тут на AskUbuntu .
Пабло А

Відповіді:


24

Кількість входів встановлюється під час форматування розділу. Зазвичай кількість створених утворень є достатньою для практично будь-яких цілей; Однак якщо у вас є велика кількість дуже маленьких файлів, ви можете використовувати вставки до заповнення диска.

Потрібно знайти багато тисяч невеликих файлів у системі, яка використовує вставки, або видалити їх, або перемістити їх у розділ, який був спеціально створений з дуже великою кількістю доступних входів. Неможливо змінити кількість входів, доступних для розділу, після його форматування.

Сценарій, написаний 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

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


ЦЕЙ РЕКЛАМ> chmode + x ~ / bin / count_em є насправді> chmod + x ~ / bin / count_em

1
чи потрібно видалити всі створені користувачем файли, або переміщення їх в архів tar може зробити трюк?
amc

Архівування їх - чудовий спосіб боротьби з ним, він не видаляє дані користувачів, але дає їм усвідомлювати, що їх поведінка не задовільна, оскільки вони не зможуть використовувати файли, як раніше. Але ймовірно, що величезна кількість файлів генерується чимось, що ніхто не використовує, і їх можна було б безпечно видалити, але це ризик.
LovesTha

Гарна альтернатива вашому сценарію може бутиsudo du -a -d 1 --inodes . | sort -nr | head -20
Чарльз Грін

1
Звичайно, це не спрацьовує, якщо ви абсолютно не
вкладені в індекси,

8

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

Звідти ви можете визначити, які каталоги видалити


1
unrecognized option '--inodes'в Ubuntu 14.04, fyi
Molomby

Для чого ви використовуєте ubundu 14.04 в 2019 році? Я бачу, він має coreutils 8.21 з лютого 2013 року, --inodesопція була додана липень 2013
lmao

2

Я виявив, що використання inode відбувається з /root/.local, і видалив цю папку.


2
Нічого багато не повинно використовувати /root/.local, і це тільки там з міркувань сумісності. Вам потрібно з’ясувати, що писало багато крихітних файлів у цей каталог.
fabrator4
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.