初步判断应该有两种情况:一种是block满了,另一种情况就是inode耗尽了。

首先df -i 查看一下是否耗尽inode/block数量。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

虚拟一块磁盘并格式化:

dd if=/dev/zero of=/opt/sdb1 bs=4096 count=100

mkfs -t ext4 /opt/sdb1

向磁盘写入数据提示:No spac left on device通过df -h查看磁盘空间,发现没满,解决方法 Linux 第1张

将磁盘挂载到/app/log/下

mkdir /app/log -p

mount -t ext4 -o loop,defaults /opt/sdb1 /app/log/

向磁盘写入数据提示:No spac left on device通过df -h查看磁盘空间,发现没满,解决方法 Linux 第2张

 查看使用率情况:

df -i

向磁盘写入数据提示:No spac left on device通过df -h查看磁盘空间,发现没满,解决方法 Linux 第3张

批量生成文件:

for n in `seq 60`;do touch bqh$n;done

向磁盘写入数据提示:No spac left on device通过df -h查看磁盘空间,发现没满,解决方法 Linux 第4张

向磁盘写入数据提示:No spac left on device通过df -h查看磁盘空间,发现没满,解决方法 Linux 第5张

df -h命令查看磁盘使用率时显示的却是1%,但此时得用df -i查看是否耗尽了inode。

向磁盘写入数据提示:No spac left on device通过df -h查看磁盘空间,发现没满,解决方法 Linux 第6张

发现inode数量已耗尽,需要删除多余的文件。

如果不知道那个目录满了如何解决:

find ./ -size 0  先查找到

find ./ -size 0|xargs rm –f 再删除

向磁盘写入数据提示:No spac left on device通过df -h查看磁盘空间,发现没满,解决方法 Linux 第7张

存放文件的个数受inode和Block的限制,不能超过。

生活中,存放文件,正常情况下,先把Block耗尽,因为一个文件只占一个inode,但是

可能占多个Block。

当然删除方法有很多,若遇到大文件数量,如果直接用rm删除,可能会不让删,强行退出,可以

直接删除上级目录,然后再创建新目录,从新授权等,所以得根据实际情况而选择。

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄