Ubuntu 服务器:硬盘总是满了

Ubuntu 服务器:硬盘总是满了

我有一个 50GB 的 VPS

当我运行 df 时我得到

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             49982172  46580100    863064  99% /
none                    507212       172    507040   1% /dev
none                    511676         4    511672   1% /dev/shm
none                    511676        76    511600   1% /var/run
none                    511676         0    511676   0% /var/lock
none                    511676         0    511676   0% /lib/init/rw

当我从 / 运行 du -h 时,我得到

...
20K     ./tmp/vmware-root
4.0K    ./tmp/.webmin
4.0K    ./tmp/.X11-unix
4.0K    ./tmp/.ICE-unix
4.0K    ./tmp/hsperfdata_root
48K     ./tmp
7.7M    ./bin
3.8G    .

我还尝试查找大于 100MB 的文件,尝试使用 find / -size +100M -ls 来查找占用我空间的文件

4026531985    0 -r--------   1 root     root     140737486266368 Mar 23 08:55 /proc/kcore
find: `/proc/3969/task/3969/fd/5': No such file or directory
find: `/proc/3969/task/3969/fdinfo/5': No such file or directory
find: `/proc/3969/fd/5': No such file or directory
find: `/proc/3969/fdinfo/5': No such file or directory

我不知道还能做什么来发现我的问题。

编辑:

更多信息

df --inodes /

Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda1            3178496  178211 3000285    6% /

查找 / -xdev -print | wc -l

178773

lsof +L1

COMMAND     PID  USER   FD   TYPE DEVICE SIZE/OFF NLINK    NODE NAME
miniserv.  1496  root  txt    REG    8,1    10416     0 2364381 /usr/bin/perl (deleted)
mysqld    12869 mysql    4u   REG    8,1        0     0  537495 /tmp/ibkCwnHJ (deleted)
mysqld    12869 mysql    5u   REG    8,1        0     0  537497 /tmp/ibFyPrrv (deleted)
mysqld    12869 mysql    6u   REG    8,1        0     0  537499 /tmp/ibdUnwbh (deleted)
mysqld    12869 mysql    7u   REG    8,1        0     0  537500 /tmp/iblHYOV2 (deleted)
mysqld    12869 mysql   11u   REG    8,1        0     0  537501 /tmp/ibUW9YGO (deleted)

分销商 ID:Ubuntu 描述:Ubuntu 10.04.4 LTS 发行版:10.04 代号:lucid

答案1

du 和 df 之间通常会存在一些差异,但通常不会像您所看到的那么大。

  • du 通过从目录树读取信息来报告所使用的磁盘空间,它准确但速度慢。
  • df 通过读取文件系统元数据报告所使用的磁盘空间,它速度很快,但由于它使用块,因此准确性较低。

您看到的情况通常的原因是文件已被删除,但尚未被写入该文件的进程关闭。

由于该文件已被删除,du 将看不到它的目录条目,因此无法将其包含在报告中。

由于文件仍处于打开状态,其使用的块不是空闲的,因此 df 将报告它们正在使用中。

您应该能够找到导致问题的文件

lsof +L1

检查该SIZE/OFF列。

+L1 形式的规范将选择已取消链接的打开文件。 +L1 形式的规范将选择指定文件系统上未链接的打开文件。

相关内容