Ubuntu 服务器:硬盘总是满的

Kra*_*ons 8 ubuntu du df

我有一个 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
Run Code Online (Sandbox Code Playgroud)

当我从 / 运行 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    .
Run Code Online (Sandbox Code Playgroud)

我还尝试找出大于 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
Run Code Online (Sandbox Code Playgroud)

我不知道我还能做些什么来找到我的问题。

编辑:

更多信息

df --inode /

Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda1            3178496  178211 3000285    6% /
Run Code Online (Sandbox Code Playgroud)

查找 / -xdev -print | wc -l

178773
Run Code Online (Sandbox Code Playgroud)

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)
Run Code Online (Sandbox Code Playgroud)

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

use*_*517 12

du 和 df 之间通常存在一些差异,但通常没有您看到的那么大。

  • du通过从目录树中读取信息来报告使用的磁盘空间,它准确但速度慢。
  • df 报告读取文件系统元数据所使用的磁盘空间,它很快,但在处理块时不太准确。

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

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

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

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

lsof +L1
Run Code Online (Sandbox Code Playgroud)

检查SIZE/OFF列。

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