inode占用100%时硬盘无法写入文件故障处理
2016-11-30 16:13
330 查看
故障现象:分区无法写入文件
故障分析:执行df -h命令发现空间占用不到70%,执行df -hi,发现某分区IUse%值为100%,说明inode已经用完,应该是某些目录下存在大量的小文件导致。
解决办法:
大量小文件分布有两种可能,一是只有一个或少量目录下存在大量小文件,这种情况我们可以使用如下命令来找出这个异常目录:
find / -type d -size +10M
此命令作用是找出大小大于10M的目录(目录大小越大,表示目录下的文件越多)。
第二种可能是,大量的小文件分布在大量的目录下,这时候上面的命令可能找不出异常的目录,需要以下命令:
cd /
find */ ! -type l | cut -d / -f 1 | uniq -c
此命令作用是找出目录下文件总数,可能需要执行多次,直到找出具体的目录。比如上面的命令找出了/data目录下存在大量的小文件,但/data/目录还有很多目录,这时候我们还需要继续执行:
cd /data
find */ ! -type l | cut -d / -f 1 | uniq -c
直到找出具体的目录。
如果可以直接删除节点满的文件夹:
find . -type f -exec rm {} \;
还可以按照文件的inode节点删除文件
find . -inum 342137 -exec rm -i {} \;
故障分析:执行df -h命令发现空间占用不到70%,执行df -hi,发现某分区IUse%值为100%,说明inode已经用完,应该是某些目录下存在大量的小文件导致。
解决办法:
大量小文件分布有两种可能,一是只有一个或少量目录下存在大量小文件,这种情况我们可以使用如下命令来找出这个异常目录:
find / -type d -size +10M
此命令作用是找出大小大于10M的目录(目录大小越大,表示目录下的文件越多)。
第二种可能是,大量的小文件分布在大量的目录下,这时候上面的命令可能找不出异常的目录,需要以下命令:
cd /
find */ ! -type l | cut -d / -f 1 | uniq -c
此命令作用是找出目录下文件总数,可能需要执行多次,直到找出具体的目录。比如上面的命令找出了/data目录下存在大量的小文件,但/data/目录还有很多目录,这时候我们还需要继续执行:
cd /data
find */ ! -type l | cut -d / -f 1 | uniq -c
直到找出具体的目录。
如果可以直接删除节点满的文件夹:
find . -type f -exec rm {} \;
还可以按照文件的inode节点删除文件
find . -inum 342137 -exec rm -i {} \;
相关文章推荐
- Linux系统iNode耗尽硬盘无法写入文件怎么办?
- Linux系统iNode耗尽硬盘无法写入文件怎么办?
- Win7系统安装软件或游戏程序提示“文件无法写入”的故障分析及解决方法
- [转载]XP向windows 7传输文件时系统提示“服务器存储空间不足,无法处理此命令”故障的解决方法
- 移动硬盘无法访问,打开提示”文件或目录损坏且无法读取”的处理方法
- Wamp,XAMPP 无法启动,端口未占用的故障处理
- mac 无法识别seagate硬盘、无法向其写入文件
- 移动硬盘"文件或目录损坏且无法读取"可能的处理办法
- 移动硬盘 Windows-延缓写入失败:无法为某文件保存所有数据,数据已经丢失
- 【恢复】非归档模式下因误删除数据文件导致数据库无法OPEN的故障处理
- 日志文件满而造成SQL数据库无法写入文件处理方法
- python os.remove删除文件(检查是否被占用,处理被占用无法删除时的系统报错)
- Oracle系统紧急故障处理(数据文件、日志文件以及表空间损坏的处理)
- 硬盘及系统启动故障处理指南
- 电脑故障处理小经验—IE无法打开链接的处理方法
- cs0016: 未能写入输出文件“c:\windows\microsoft.net\***.dll”错误处理
- 关于Eclipse无法重新编译java文件的处理方法之一
- [导入]软硬盘都无法启动故障一例
- (转)CS0016: 未能写入输出文件“c:\WINDOWS\xxxxxsktsuj.dll”--“拒绝访问。”的处理
- 关于Eclipse无法重新编译java文件的处理方法之一