博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
"No space left on device" 磁盘空间提示不足解决办法
阅读量:6591 次
发布时间:2019-06-24

本文共 2448 字,大约阅读时间需要 8 分钟。

首先先要解释什么是inode?

inode在linux中,每个文件,不管大小是多少都会对应一个inode,inode就是一个专门用来保存文件属性,权限和指针(指向block)

inodex满了会导致什么问题?

首先,在linux中,有两个概念,就是block和inode,block:用于存放实际数据,inode:存放文件属性,只要这两个其中一个占满空间了,都会导致提示报错“磁盘空间不足”

"No space left on device" 磁盘空间提示不足解决办法

**inodex故障模拟

某年某月某日某时,某人在工作中设置crontab定时任务规则保存时,提示“No space left on device”,此时用df -h检查磁盘,发现还有剩余空间.请问是什么原因及如何排查?什么会导致这种事情发生

1.模拟测试环境

系统:centos 7.4,磁盘空间8G,CPU 4核,内存4G(最好给大点,创建文件需要大内存)

[root@xmh ~]# mkdir /test[root@xmh ~]# echo /test/{1..6000000}.txt |xargs touch #创建的文件太多了,只能用这种方式创建

2.进入正题

#1.当进入编辑cronta或者创建文件时,直接报错,提示磁盘空间不足[root@xmh ~]# crontab -e/tmp/crontab.MApBTV: No space left on device[root@xmh ~]# touch xmh.txttouch: cannot touch ‘xmh.txt’: No space left on device2.查看磁盘空间[root@xmh ~]# df -hFilesystem      Size  Used Avail Use% Mounted on/dev/sda1       8.0G  3.2G  4.9G  39% /      ##可以发现磁盘容量是空闲很多的devtmpfs        1.7G     0  1.7G   0% /devtmpfs           1.7G     0  1.7G   0% /dev/shmtmpfs           1.7G  8.7M  1.7G   1% /runtmpfs           1.7G     0  1.7G   0% /sys/fs/cgrouptmpfs           332M     0  332M   0% /run/user/03.查看inode空间[root@xmh ~]# df -iFilesystem      Inodes   IUsed  IFree IUse% Mounted on/dev/sda1      4193792 4193792      0  100% /       #但是inode空间已满了devtmpfs        422466     395 422071    1% /devtmpfs           424923       1 424922    1% /dev/shmtmpfs           424923     473 424450    1% /runtmpfs           424923      16 424907    1% /sys/fs/cgrouptmpfs           424923       1 424922    1% /run/user/0提示:当磁盘容量或inode容量任意一个不足时就都会提示No space left on device

3.解决办法

使用find命令查找大于10M的目录,可以从df -i看出是在 根 /下容量不足,那么我们就从 / 下开始排查

[root@xmh ~]# find / -type d  -size +10M |xargs  ls -lhd  #find查找drwxr-xr-x. 2 root root 97M Feb 15 14:00 /test[root@xmh ~]# ls /test/ |wc -l  #对该目录文件数量统计4168011#定位好目录后删除小文件[root@xmh /]# rm -rf /test/*  #直接 rm -rf * 的话是删除不了大量的小文件-bash: /usr/bin/rm: Argument list too long[root@xmh /]# cd /test/[root@xmh test]# ls |xargs rm -f#删除大量的小文件,使用该命令删除[root@xmh /]# ls /test/ |wc -l #小文件已经删除了#再次查看inode容量[root@xmh ~]# df -iFilesystem      Inodes IUsed   IFree IUse% Mounted on/dev/sda1      4193792 25973 4167819    1% /    #inode容量已恢复正常devtmpfs        422466   395  422071    1% /devtmpfs           424923     1  424922    1% /dev/shmtmpfs           424923   473  424450    1% /runtmpfs           424923    16  424907    1% /sys/fs/cgrouptmpfs           424923     1  424922    1% /run/user/0#删除小文件所在的目录(删除时注意记录该目录的所属用户和权限)[root@jason /]# rm -rf /test/

转载于:https://blog.51cto.com/12643266/2352355

你可能感兴趣的文章
常用网络设备
查看>>
转:深入理解Java G1垃圾收集器
查看>>
生成器和装饰器
查看>>
[Java基础]Java异常捕获
查看>>
math --- CSU 1554: SG Value
查看>>
ruby环境sass编译中文出现Syntax error: Invalid GBK character错误解决方法
查看>>
数组-去重、排序方法、json排序
查看>>
wp7 断点续传
查看>>
Js跳转网页的几种方法
查看>>
Vagrant使用
查看>>
python 查看与更换工作目录
查看>>
添加删除替换插入到某个接点的方法?
查看>>
求js数组中最小值
查看>>
学习笔记之机器学习(Machine Learning)
查看>>
正确率、召回率和 F 值
查看>>
UVA10018 Reverse and Add
查看>>
HDU1879 继续畅通工程
查看>>
2019.4.27
查看>>
关于颜色(color、background)
查看>>
BOM:浏览器对象模型
查看>>