linux服务器No space left on device错误解决方法

今天服务器新建文件时报No space left on device错误,但是用df看磁盘使用情况还剩余很多。于是在网络上找到答案,原来是inode用完了,是某个用户目录下引起的,但是该用户早就没有使用了,不清楚怎么还会出问题。

1. 使用df -i 命令查看inode使用情况

    如果在IUse%那一列为100%或接近,则是因为有大量的小文件。

2. 找出是哪个目录下的 

   for i in /home/*; do echo $i; find $i |wc -l; done

   通过该命令可以查看每个用户home下inode的占用情况。如果某个目录下的inode很大,那就是问题所在了。

3. 可以到问题目录下进一步地查找。

4.找到后直接rm删除目录,删除会很慢,因为inode很多。可以用df -i查看删除的进度。

 

下面补充一下inode相关知识。

    Linux/Unix like OS 的文件系统中每个目录树中的节点并不是像 Windows 那样直接包含文件的具体信息,而只包含了文件名和 Inode number 。通过 Inode number 所找到对应于文件名的 Inode 节点中才真正记录了文件的大小/物理地址/所有者/访问权限/时间戳/被硬链接的次数等实际的信息 。

    因此你可以在 Linux 系统中通过硬链接( hard link ) 的方式给某个文件创建无数个位于不同目录下的文件名,而实际的文件数据只需要一份拷贝。

 但也正因为这种文件系统的结构,当你在 Linux 中进行 IO 操作的时候,需要的资源除了磁盘空间以外,还要有剩余的 Inode 才行。缺省情况下, Linux 在系统安装过程中按照1个 Inode 对应 2k 磁盘空间来计算每个分区的最大 Inode 数。一旦文件系统创建之后,每个分区可用 Inode 数就无法进行动态调整。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值