df -i
Filesystem-----Inodes-----Iused-----IFree-----IUse-----Mounted on
dev/sda2-------732960-----727804-----5156-----100%---- /
只有这 2 个拥有最高的 inode,其余的都太低了。可以做些什么来释放 inode?
进程 10937 个 inode
Sys 22504 个 inode
apt-get -f install
说没有剩余空间
df -i 输出图像
apt-get -f install 输出错误图片
inode 搜索输出图像 -
var 日志只有 26Mb(var 目录中最大)
答案1
几周前我试验过同样的问题,这个程序解决了这个问题。
首先,搜索哪里是空间利用率最高的地方
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。
问候。
答案2
我可以看到两个选项。
您可以备份整个文件系统,然后使用更多数量的 inode 重新创建它。
或者,您可以将另一个驱动器安装到包含许多文件的路径,然后将文件移动到该驱动器,这样您就可以保留 @vembutech 提到的结构。遗憾的是,我暂时无法对此表示赞同。
答案3
如果你使用docker,请删除所有图像。它们占用了很多空间。。。对我有用
#!/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)
答案4
只是为了补充上述评论,最好使用上述命令的稍微修改版本,特别是在符号链接中 -
例如:/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”,您也可以观察到类似的行为。