I am LAZY bones? AN ancient AND boring SITE

找回丢失的磁盘空间

经常接触linux,尤其是多人共用的服务器上的linux的朋友,也许会经常遇到这样的问题:
收到一个磁盘告警,说某某分区已经满了,然后登录服务器 df 一看,发现磁盘确实快满了,然后你就想找到具体是哪个目录满了,于是 du -s * 一看,却发现所有子目录的大小总和却和df显示的总已使用磁盘空间对不上,有时候甚至还相差很多,于是就纳闷了:我的磁盘空间去哪了呢?

这里就列一下我所知的3种情况:

  1. 隐藏文件
  2. linux系统把文件名以.(点号)开头的文件视为隐藏文件,而类似bash里*这样的操作符是不会匹配隐藏文件的,所以如果根目录下有个较大的隐藏文件的话,是不会被du -sh * 统计到的,解决办法就是: du -sh .[^.]*

  3. 非空目录被mount
  4. 一般挂载其他分区的时候都是建议mount到一个空目录的,那么如果mount到一个非空的目录,情况会怎么样呢?比如/mnt目录本来里面是有文件的,然后执行了sudo mount /dev/sda6 /mnt。其实这个mount命令完全能正常执行,被mount的分区也能正常访问,只是原先在/mnt里的文件,现在已经访问不到了,包括du也看不到大小了,但是磁盘空间却还是被占着,因为如果你 umount /mnt 以后,原来的文件都还会回来的。

  5. 空洞文件
  6. 一个文件的大小和所占磁盘空间也不一定完全一致,比如某个程序一直打开着一个叫log的文件在写,而中间有人用 > log 命令清除了log的内容,就会产生这样的文件。这里有这种文件的介绍。

上面3种是我所知的,应该还有其他情况,欢迎留言补充。

最后修改时间: 2011年09月25日 21:37

本文章发表于: 2011年09月25日 21:37 | 所属分类:经验技巧. | 您可以在此订阅本文章的所有评论. | 您也可以发表评论, 或从您的网站trackback.

19 个评论 关于: “找回丢失的磁盘空间”

  1. vehiclee 在 2011年09月25日 23:02 说:回复

    还有root保留空间

    • bones7456 在 2011年09月26日 09:37 说:回复

      关于root保留空间,具体可以看这里,但是由于这部分空间不会在df的“Used”里面,所以不算是“丢失的”空间吧。

  2. g0t3n 在 2011年09月27日 17:48 说:回复

    还有一种比较邪恶的东西….不知骨头是否知道linux下的rootkit….那个东西可以劫持系统调用…du -h是用某个系统调用(类似ls获得文件明,但df貌似是获得inode所以不同),劫持了系统调用后对某个文件隐藏了所以du看不到…

    • bones7456 在 2011年09月28日 11:55 说:回复

      呵呵,你这种属于人为故意制造的假象~~这么说,还可以把/usr/bin/du给替换掉,情况就更多了。。。

  3. 依云 在 2011年09月27日 18:51 说:回复

    等了三个月,终于又见新文章了~

  4. muzuiget 在 2011年09月28日 12:49 说:回复

    硬链接算不算?

    • bones7456 在 2011年09月28日 15:07 说:回复

      硬链接会造成ls的大小总和和du的结果对不上,但是du和df的结果还是能对上的,应该不算吧?

  5. xiooli 在 2011年09月30日 11:07 说:回复

    骨头兄终于又更新文章啦,好久不见。

  6. yetone 在 2011年11月16日 13:39 说:回复

    这点空间已经不在乎了

  7. 大大的小蜗牛 在 2012年04月03日 09:58 说:回复

    很好,不错,又发现一个技术博客。ubuntu.org.cn过来的。

  8. cat tree 在 2012年05月15日 14:02 说:回复

    再来浏览一次,上次没看懂。

  9. ihoter 在 2012年06月29日 19:52 说:回复

    我还没遇到过这种情况呢。

  10. 石家庄SEO 在 2013年02月27日 16:18 说:回复

    好久没来了 过来看看博主 石家庄SEO的朋友到此一游啊

  11. 你我觅 在 2014年10月23日 14:31 说:回复

    这个真心不错,赞一个

  12. skin care treatments 在 2015年01月06日 16:22 说:回复

    skin care treatments

    I am LAZY bones ? : 找回丢失的磁盘空间

  13. 石樱灯笼博客 在 2016年02月02日 08:50 说:回复

    非空目录被mount的情况比较多;
    其他情况的话,inode被用尽也算是一种情况吧。

    • bones7456 在 2016年03月08日 16:01 说:回复

      inode被用尽,应该不会影响 df 的结果吧?

  14. 免费资源 在 2016年03月24日 14:58 说:回复

    这么好的博客 为什么停更了。。

    • bones7456 在 2016年03月25日 17:08 说:回复

      呃。。。也没有啥特别的原因,只是觉得没啥可以写了。。。

发表评论