有网友反馈到他们的服务器业务打不开,但是检查磁盘占用情况的时候发现还有余量,于是我们检查后发现Inodes文件数量被占满了,Inodes使用率过高达到了100%。理论上,inode占满和磁盘占满是一样的,无法创建文件。
当linux inode满了时,系统将无法创建新的文件或目录,甚至无法复制或移动已有文件或目录。大多数情况下是由于文件数量过多所引起的,只需要删除无用的就好了。
解决方案:
1. 检查是否有大量空间被占用
使用df -i命令检查inode的使用情况,如果发现inode使用率接近100%,则说明inode已满。
2. 查看并删除临时文件
ls -lt /tmp | wc -l
find /tmp -type f -exec rm {} \;
3. 删除0字节的文件,这些文件也会占用inode
find /home -type f -size 0 -exec rm {} \;
4. 删除不必要的文件
在检查inode使用情况后,可以使用find命令来查找并删除不必要的文件,以释放inode空间。例如:
find / -xdev -type f -atime +7 -exec rm -f {} \;
5. 重新格式化分区
如果删除不必要的文件后仍然无法释放足够的inode空间,则可以尝试重新格式化分区,使用更多的inode。例如:
mkfs.ext4 -T largefile /dev/sda1