找回linux丢失的磁盘空间

发表于:2013-08-05来源:IT博客大学习作者:不详点击数: 标签:linux
最近一台服务器空间总是报警,磁盘空间不足。 使用 df 命令查看,磁盘空间耗用接近 100%,将机器上过期的数据以及日志清理掉,但是空间很快又是接近 100%。 使用 du 查看,想找出磁盘空间被耗用在哪里了,结果发现他输出的结果和df命令输出的

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

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

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

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

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

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

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

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

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

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

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

原文转自:http://blogread.cn/it/article/6565?f=wxq