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" также вы можете наблюдать подобное поведение.