linux文件满了删除不了

  • 问题:系统日志满了(df -h 为100% df -i不为100%)以后,进行rm -rf文件,再次进行df -h磁盘依旧为100%
    原因:

    有硬链接
    lsof | grep del  该文件被某些服务占用,导致不能及时释放
    磁盘空间维护出现问题
    

    解决方案:

    1.删除文件,重启服务
    2.清空文件
    

    文件删除原理:

    linux是通过link的数量来控制文件删除的,只有当一个文件不存在任何link的时候,这个文件才会被删除,一般来说,每个文件都有2个link计数器:i_count,i_nlink,
    i_count的意义是当前文件使用者的数量;i_nlink的意义是介质连接的数量(硬链接的数量),可以理解为i_count是内存引用计数器,i_nlink是磁盘的引用计数器.
    当一个文件被某一个进程引用时,对应的i_count数就会增加,当创建文件的硬链接的时候对应i_nlink数就会增加.
    对应删除命令rm而言,实际就是减少磁盘引用的计数i_nlink.如果一个文件正在被某个进程调用,而用户却执行rm操作把文件删除了,那么会出现如上结果.
    
坚持原创技术分享,您的支持将鼓励我继续创作!