向磁盘写入数据提示:No spac left on device通过df -h查看磁盘空间,发现没满

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

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

虚拟一块磁盘并格式化:

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

mkfs -t ext4 /opt/sdb1

将磁盘挂载到/app/log/

mkdir /app/log -p

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

 查看使用率情况:

df -i

批量生成文件:

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

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

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

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

find ./ -size 0  先查找到

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

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

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

可能占多个Block

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

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

原文地址:https://www.cnblogs.com/fksxy/p/9950146.html