IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

找回linux丢失的磁盘空间

sunnyu 2013-07-30 13:50:50 累计浏览 8,570 次
本机暂存

摘要来自 sunnyu阅读原文 →

探索更多技术文章 技术头条社区

推荐阅读

  1. Linux如何统计进程的CPU利用率
  2. 我的 RHCA 之路
  3. Linux内存点滴 用户进程内存空间

   最近一台服务器空间总是报警,磁盘空间不足。

   使用 df 命令查看,磁盘空间耗用接近 100%,将机器上过期的数据以及日志清理掉,但是空间很快又是接近 100%。

   使用 du 查看,想找出磁盘空间被耗用在哪里了,结果发现他输出的结果和df命令输出的结果相差很大,离100%空间占用还远着呢。

   丢失的空间跑哪了,是磁盘损坏了吗?

   使用google搜索了一下,发现两个可能的原因:

   1. 磁盘文件删除后,但是原先对应写文件的进程还在,仍然抓着那个文件,在往里面写数据,空间继续被他耗用,同时删除后的空间得不到释放,du 命令也看不到这个文件占用的空间。

   2. 使用mount命令,挂载到一个原本有数据的目录,之前目录下的文件不可见也不会被du看到统计

   因为这台服务器没有做特殊目录挂载,所以按照问题1查找丢失的空间。

   使用 lsof | grep deleted 查找被删除的文件,果然发现一个巨大的日志文件

   在外面kill掉写这个日志文件的进程,发现磁盘空间一点一点被释放回来了

   重新运行进程,发现日志也被正常写入。