查找大文件 & 索引节点(inode)爆满 解决办法
经常遇到磁盘满或者文件节点满的情况,整理如下
查找大文件
- 查找超过某个大小的文件, 如1G
find . -type f -size +1G
- 查找文件大小的时候,现实文件属性
find . -type f -size +1G -print0 | xargs -0 ls -l
- 显示具体大小并排序
find . -type f -size +1G -print0 | xargs -0 du -h | sort -nr
查找大目录并排序
du -h --max-depth=1 | sort -n
索引节点(inode)爆满情况处理
背景
存储设备分为两部分,inode和block,block存数据,inode存储数据的信息,系统指令通过inode迅速找到block的位置,所以,如果inode被用完,那么即使存储设备还有空余空间,仍旧无法写入新数据。
所以,这种情况很可能是因为有大量的小文件所致,大量的小文件,可能存在在单个目录下,也可能存在在大量的目录下
少量目录有大量小文件
通过以下命令找出目录(文件越多,目录越大)
find / -type d -size +10M
大量目录有大量小文件
find */ ! -type l | cut -d / -f 1 | uniq -c
命令反复执行,直至找出具体的目录
删除方法
- 直接删除目录
find . -type f -exec rm {} \;
- 安装文件inode节点删除文件
find . -inum 342137 -exec rm -i {} \;