Linux 服务器运维

1. no space left on device

原因

  1. 磁盘满了
  2. inode耗尽

解决

  1. 确认磁盘是否满了: df -h (sh)

  2. 确认inode是否耗尽: df -i

    如果inode已经耗尽,则系统不能创建文件

  3. 确认哪个目录的小文件超量:

    1. find / -type d -size +10M: 找出大小大于10M的目录(目录大小越大,表示目录下的文件越多)
    2. 进入对应的目录,并执行命令 find */ ! -type l | cut -d / -f 1 | uniq -c (统计目录下的文件个数)
    3. 确定文件可以删除,则执行 ls | xargs rm -rf

扩展

  1. 查看硬盘分区的block和inode大小

    dumpe2fs /dev/sdb1 |grep -i "Block size" // 查看Block size的大小
    dumpe2fs /dev/sdb1 |grep -i "Inode size" // 查看Inode size的大小
    dumpe2fs /dev/sdb1 |grep "Block count" // 查看Block的总数量
    dumpe2fs /dev/sdb1 |grep "Inode count" // 查看inode的总数量
    
  2. inode:

    1. 文件存储在硬盘上,硬盘的最小存储单位叫做“扇区”(Sector)。每个扇区存储512字节(相当于0.5KB)。
    2. 操作系统读取硬盘的时候,不会一个个扇区的读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个“块”(Block)。这种由多个扇区组成的“块”,是文件存取的最小单位。“块”的大小,最常见的是4KB,即连续八个sector组成一个block。
    3. 文件数据都存储在“块”中,那么很显然,还必须找到一个地方存储文件的“元信息”,比如文件的创建者、文件的创建日期、文件的大小等。这种储存文件元信息的区域就叫做inode,中文译名“索引节点”
    4. 每一个文件都有inode,里面包含与该文件有关的一些信息
    5. 使用 stat 文件名查看某个文件的inode信息
    6. inode也会消耗硬盘空间,所以硬盘格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据;另一个是inode区(inode table),存放inode所包含的信息
    7. 每个inode节点的大小,一般是128字节或256字节。inode节点的总数,在格式化时就给定,一般是每1KB或每2KB就设置一个inode。假定在一块1GB的硬盘中,每个inode节点的大小为128字节,每1KB就设置一个inode,那么inode table的大小就会达到128MB,占整块硬盘的12.8%。
    8. 查看某个文件的inode值: ls -il 文件名
    9. 利用inode删除文件: find . -inum 655473 | xargs rm -rf
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值