100 % инодов в корневом каталоге, как освободить иноды?

df -i
Filesystem-----Inodes-----Iused-----IFree-----IUse-----Mounted on
dev/sda2-------732960-----727804-----5156-----100%---- /

Только эти 2 имеют самые высокие иноды, остальные все слишком низкие. что можно сделать, чтобы освободить иноды?

Proc 10937 inode

Sys 22504 inode

apt-get -f install говорит, что места не осталось

df -i выводит изображение

apt-get -f установить изображение ошибки вывода

inodes поиск выходного изображения -

журнал var всего 26Mb (самый высокий в каталоге var)

4 ответа

Я экспериментировал с той же проблемой несколько недель назад, и эта процедура решила эту проблему.

Во-первых, поиск, где больше всего места использования

    for i in /*; do echo $i; find $i |wc -l; done

Обратите внимание, когда для чтения некоторых каталогов требуется больше времени. В моем случае был / var /, где требуется больше времени для поиска.

Итак, запустите это:

    for i in /var/*; do echo $i; find $i |wc -l; done

После этого выполните ту же команду в /var/log/* и обнаружите много маленьких файлов в логах squid3.

После запуска rm -rfv /var/log/squid3/access.log* (и перезапуска squid3) проблема была решена, и IUSE% изменился со 100 на 13.

С уважением.

Я вижу два варианта.

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

Или вы можете смонтировать другой диск по пути со многими файлами и переместить файлы на этот диск, так что вы сохраните структуру, упомянутую @vembutech. К сожалению, я пока не могу этого отозвать.

Если вы используете докер, удалите все изображения. Они использовали много места.... Работа для меня

#!/bin/bash
# Stop all containers
docker stop $(docker ps -a -q)
# Delete all containers
docker rm $(docker ps -a -q)
# Delete all images
docker rmi $(docker images -q)

Одним из вариантов вы можете удалить или переместить файлы на другой диск. Или подключите диск большей емкости к новому каталогу на диске /dev/sda2 и переместите файлы.

Чтобы добавить точку к приведенным выше комментариям, лучше использовать слегка измененную версию приведенной выше команды, особенно в символических ссылках -

Например: /bin -> usr/bin

for i in /*; do echo $i; find $i |wc -l; done
/bin
1

Просто используйте косую черту после "find $i/", и тогда вы увидите лучший результат.

for i in /*; do echo $i; find $i/ |wc -l; done
/bin
865

Аналогично для "lib", "lib64" также вы можете наблюдать подобное поведение.

Другие вопросы по тегам