• 利用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 如果有进程在访问文件,则有可能出现磁盘空间不释放的情况。

  • 相关阅读:
    iOS开发系列--通知与消息机制(转)
    iOS Storyboard全解析(转)
    在IOS代码中使用UNIX命令
    如何用代码实现iPhone手机软件注销和手机重启
    ios多线程开发 GCD常见用法
    ios多线程开发 GCD的基本使用
    ios错误码:NSError对象.code
    iOS9 HTTP请求失败
    (转)空指针和野指针
    (转)ARC指南
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/11676438.html
Copyright © 2020-2023  润新知