现象:df -h显示硬盘还有14G空间,但是touch file/mkdir directory都失败,提示硬盘没有空间

  

  原因:df -ia查看下inode的使用情况,发现已经爆了,(下图显示使用88%,还没有用完)

  

  那么,inode究竟是什么?为什么它使用完,就不能创建文件和文件夹了?

  解释:文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。

操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。

  文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。

  每一个文件都有对应的inode,里面包含了与该文件有关的一些信息

  

  可以使用stat命令查看inode的信息:stat example.txt

  另外,单个目录下子目录的数量也是有限制的

  统计目录inode占用数目:

find */ ! -type l | cut -d / -f 1 | uniq -c

find */ -exec stat -c "%n %i" {} \;|awk -F "[/ ]" '{if(! a[$1-$NF]++) l[$1]++}END{for (i in l) print i,l[i]}'

参考:

1、http://www.ruanyifeng.com/blog/2011/12/inode.html

2、https://www.jianshu.com/p/6978bddd69af

3、http://blog.51cto.com/13520924/2092364

4、https://blog.csdn.net/lidan3959/article/details/16981137

为什么硬盘明明还有空间,linux却说硬盘空间不足?inode;mkdir: 无法创建目录"shen1": 设备上没有空间的更多相关文章

  1. Linux svn checkout时候总报设备上没有空间

    详细报错信息:svn: 不能打开文件“weibosearch2.0.0/.svn/lock”: 设备上没有空间 但是df -h查看磁盘[root@picdata-1-2 data]# df -h文件系 ...

  2. Linux设备上没有空间之复盘

    某天前端在调接口的时候,发现登录页面得验证码接口居然没有响应数据,显示的是500响应码.于是我一路排查,首先排查验证码接口所属的微服务是否正常,通过lsof -i:服务端口进行排查,发现该微服务进程存 ...

  3. -bash: 无法为立即文档创建临时文件: 设备上没有空间---记一次报错

    故障发生原因 测试环境,之前用该机器做过docker-compose,后来有需要用到该机器上的docker环境,需要将旧的docker容器全部删除,由于之前启动是使用docker-compose启动的 ...

  4. /tmp/crontab.tDoyrp: 设备上没有空间 查看文件夹所在分区 磁盘剩余空间 15g的root-mail大文件

    问题诊断: 文件夹所在磁盘已满 问题确认: 查看文件夹所在磁盘剩余空间,找出空间被消耗的文件(集) 查看文件夹所在磁盘空间的所属文件(暂未解决) [root@hadoop1 /]# df -Bg /t ...

  5. mac 上格式化磁盘出现MediaKit报告设备上的空间不足以执行请求的解决办法

    1.问题描述: 我使用是一个2T移动硬盘,分了5个区 2.分析原因:因为mac OSX的日志式格式需要有EFI分区进行引导,而我的移动硬盘是没有EFI分区的,这样的话就会出现问题: 3.解决办法: 1 ...

  6. java.io.IOException: 设备上没有空间

    解决: 逐层目录查找最大文件夹du -h --max-depth=1 确定最大目录为log目录,删除log目录下的所有日志文件rm -f *

  7. QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed: 设备上没有空间

    解决办法: 添加最大监控文件数量 临时解决:(重启之后恢复) 命令设置:sudo sysctl fs.inotify.max_user_watches=524288 生效: sudo sysctl - ...

  8. 设备没有可用空间 /var/spool/clientmqueue sendmail

    [root@hadoop3 /]# crontab -e/tmp/crontab.TB7A7w: 设备上没有空间[root@hadoop3 /]# df -Bg文件系统 1G-块 已用 可用 已用% ...

  9. linux查看硬盘空间 文件大小

    du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的.他计算的大小就是当前他认为存在的所有文件大小的累加和 df,disk free ...

随机推荐

  1. foy: 轻量级的基于 nodejs 的通用 build 工具

    npm 的 scripts 下写的命令太多就很容易很乱,各种第三方轮子都只能解决一部分问题,总感觉不是很好用,想找个类似 make 的工具只能找到 jake, 可是 jake 的 API 太老,居然很 ...

  2. windows系统使用的误区

    1.软件不要装在c盘,影响系统运行速度. 软件c盘不会影响系统运行,会提高软件运行速度 PS:前提条件:C盘有足够的空余空间(50G以上). 大多数软件安装默认路径在C盘的原因是不知道电脑分区的情况, ...

  3. 浅析win32 Win64 x86 x64 区别 及Eclipse启动报Java was started but returned exit code=13 错误

    win32.x86_64是64位 X86就是  32位系统 X64 就是64位系统 最好记得方法就是带有64的就是64位,其余都是32位 为什么要讲这个呢? 如果是绿色版本的eclipse,在打开ec ...

  4. Python_Virtualenv及Pycharm配置

    Virtualenv存在的意义 在Python使用过程中,你是否有遇到过同时需要开发多个应用的情况? 假设A应用需要使用DJango1.X版本,而B应用需要使用DJango2.X的版本,而你全局开发环 ...

  5. wordpress 使用wp_head()函数

    wp_head()的作用: 在WordPress主题中使用此函数控制<head>…</head>之间的标签内容. 以通过header.php模板文件输出html中的head标签 ...

  6. 深度理解STL之map、set

    课程设计做了这个一直没有整理(搬运 set算是关键字和相同的特殊map set应该更加被强调理解为“集合”,而集合所涉及的操作并.交.差等,即STL提供的如交集set_intersection().并 ...

  7. List容器——LinkedList及常用API,实现栈和队列

    LinkedList及常用API ①   LinkedList----链表 ②   LinkedList类扩展AbstractSequentialList并实现List接口 ③   LinkedLis ...

  8. CentOS 6.3下安装腾达USB无线网卡遇到的问题及解决方法

    前言:centos 6.3 下,安装腾达W311M型号Usb无线网卡的步骤.究竟折腾及同事的先前帮助,后来搞定. centos6.3 为64位.安装步骤及顺序: 1.在当前版本下安装W311M usb ...

  9. BZOJ-1085 骑士精神

    估价函数其实就是与目标状态有几个不同... 迭代启发搜索. #include <cstdlib> #include <cstdio> #include <cstring& ...

  10. BZOJ 4555 [Tjoi2016&Heoi2016]求和 ——分治 NTT 多项式求逆

    不想多说了,看网上的题解吧,我大概说下思路. 首先考察Stirling的意义,然后求出递推式,变成卷积的形式. 然后发现贡献是一定的,我们可以分治+NTT. 也可以直接求逆(我不会啊啊啊啊啊) #in ...