消失的磁盘空间之谜

Odd*_*ing 5 disk-usage disk-utility

我的磁盘空间每天减少大约 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
Run Code Online (Sandbox Code Playgroud)

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

julian@server1:~$ sudo du -h / | tail -n 1
16G     /
Run Code Online (Sandbox Code Playgroud)

我在 / 中的所有文件加起来只有16 GB。这留下了110 GB下落不明!

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

更多细节:

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

    • 我自己的代码(日志文件相当多,但除此之外不会在驱动器上存储太多内容)
    • 备份的重复性(往往会存储大量签名文件)
    • 各种其他标准服务,如 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
Run Code Online (Sandbox Code Playgroud)

Ser*_*gey 8

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

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

请参阅此答案以获得稍长的解释