磁盘空间消失之谜

磁盘空间消失之谜

我的磁盘空间每天减少约 2GB!再过几天我的空间就会用完。

$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda4             143G  126G   11G  93% /
udev                  491M  4.0K  491M   1% /dev
tmpfs                 200M  696K  199M   1% /run
none                  5.0M     0  5.0M   0% /run/lock
none                  499M  144K  499M   1% /run/shm
/dev/sda2             1.9G  580M  1.2G  33% /tmp
/dev/sda1              92M   29M   58M  33% /boot

我一直在寻找最大的目录/日志文件,删除并压缩。但我仍然输掉了这场战争。最后,我意识到我有一个很大的误解:

julian@server1:~$ sudo du -h / | tail -n 1
16G     /

我的所有文件在 / 中加起来只有16 GB. 剩下的110 GB下落不明!

显然我有一个误解:我认为 '/dev/sda4' 行代表从 '/' 可见的所有文件。 我应该阅读什么才能了解​​其他存储空间去了哪里?

更多细节:

  • 我有一个 Ubuntu 11.10 服务器,由数据中心工作人员设置。
  • 它正在运行

    • 我自己的代码(日志文件相当丰富,但除此之外没有在驱动器上存储太多东西)
    • duplicity 用于备份(通常会存储大量签名文件)
    • 各种其他标准服务,例如 Apache、nagios 等。它们的使用很少。
  • 它已经运行了大约 4 个月,没有重启过。

  • 我对 du 的输出撒了谎(为了效果而简化了)。它还抱怨无法访问 GVFS 和 du 进程自己的资源。我认为它们无关紧要:

 du: cannot access `/home/julian/.gvfs': Permission denied
 du: cannot access `/proc/10841/task/10841/fd/4': No such file or directory
 du: cannot access `/proc/10841/task/10841/fdinfo/4': No such file or directory
 du: cannot access `/proc/10841/fd/4': No such file or directory
 du: cannot access `/proc/10841/fdinfo/4': No such file or directory

答案1

这可能是由于某些应用程序写入未链接的临时文件造成的 - 此类文件不会显示在du输出中(因为它们在任何目录中都没有条目)但应用程序仍然能够写入它,因此文件会增大并占用空间。

您可以使用lsof +L命令查找硬链接计数为零的文件,并查看哪个进程拥有该文件。重新启动该进程应该可以释放空间。

这个答案稍微详细解释一下

相关内容