向磁盘写入数据提示: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 再删除
存放文件的个数受inode和Block的限制,不能超过。
生活中,存放文件,正常情况下,先把Block耗尽,因为一个文件只占一个inode,但是
可能占多个Block。
当然删除方法有很多,若遇到大文件数量,如果直接用rm删除,可能会不让删,强行退出,可以
直接删除上级目录,然后再创建新目录,从新授权等,所以得根据实际情况而选择。