zoukankan      html  css  js  c++  java
  • 利用lsof命令查找已经删除的文件来释放磁盘空间

    测试环境一台服务器/目录空间使用率达到97%,但是通过du -sh *发现实际空间没用到那么多,初步怀疑,之前删除的文件,有运行中的进程一直占用,导致空间没有释放,如图通过du -sh *发现共实际使用不到5G+空间,而通过df -h发现已经使用了45G。

     

    接着我们通过lsof命令查找运行中的进程占用已经删除的文件(僵死文件。这些文件实际上已经被删除,但是有服务程序在使用这些文件,导致这些文件一直被占用,无法释放磁盘空间,使用如下命令可以查看死文件占用情况),使用命令

    lsof | grep delete |sort -nrk 7|more
    

    注意:sort -nrk 7是将已经删除的文件进行大小排序

     15638进程占用大量的的删除文件,释放这些文件,首先查找进程ps -ef|grep 15638,我这个是测试环境,所以我使用kill -9 15638直接杀死进程,再用df  -h

     空间使用率已经下降到11%

    总结:在日常运维过程中,如果我们需要删除比较大的文件可以使用> filename,这种可以直接释放磁盘空间,使用rm 如果有进程在访问文件,则有可能出现磁盘空间不释放的情况。

  • 相关阅读:
    表单:文本框默认提示信息(小例子)
    代码:jquery小效果—— 吸顶
    Day5:面向对象的定义(中)
    Day5:面向对象的定义(上)
    Day4:数组(扩展知识)
    Day4:数组
    Day3:JAVA方法的定义
    Day2:JAVA判断与运算(循环)
    Eclipse使用技巧
    (HTTP)状态码详解
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/11676438.html
Copyright © 2011-2022 走看看