/home 的 Ubuntu“设备上没有剩余空间”,df 显示 100% 已满,ds 显示很多,少得多

Jon*_*ram 4 disk-space-utilization du df ubuntu-12.04

可能的重复:
Linux 的 df 和 du 的根分区大小不同

在 Ubuntu 12.04 服务器上,普通用户无法再在 中创建或添加文件/home,遇到“设备上没有剩余空间”错误。

/home目录的容量为 1.7 TB,据我所知,在存储的实际数据或使用的 inode 方面还远远不够。

df -h 显示:

Filesystem      Size  Used Avail Use% Mounted on
/dev/md2        1.0T   18G  955G   2% /
udev            7.7G  4.0K  7.7G   1% /dev
tmpfs           3.1G  320K  3.1G   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            7.7G     0  7.7G   0% /run/shm
cgroup          7.7G     0  7.7G   0% /sys/fs/cgroup
/dev/md3        1.7T  1.7T     0 100% /home
/dev/md1        496M   45M  426M  10% /boot
Run Code Online (Sandbox Code Playgroud)

/home 确实看起来比较饱满。

du -hs /home 否则建议:

1.4G    /home
Run Code Online (Sandbox Code Playgroud)

似乎没有 inode 问题 - df -i

Filesystem        Inodes  IUsed     IFree IUse% Mounted on
/dev/md2        67108864  75334  67033530    1% /
udev             2013497    527   2012970    1% /dev
tmpfs            2015816    440   2015376    1% /run
none             2015816      2   2015814    1% /run/lock
none             2015816      1   2015815    1% /run/shm
cgroup           2015816      9   2015807    1% /sys/fs/cgroup
/dev/md3       113909760 105981 113803779    1% /home
/dev/md1          131072    239    130833    1% /boot
Run Code Online (Sandbox Code Playgroud)

我最近删除应用程序缓存和日志数据的数千兆字节/home,但是这是在数十GB的最好和隔靴搔痒的capcity /home

更新 1

du -hs --apparent-size /home
1.2G    /home
du -hs /home
1.4G    /home
Run Code Online (Sandbox Code Playgroud)

这里可能会发生什么?

qua*_*nta 10

检查文件是否仍以写入模式打开:

lsof | awk '/deleted/ && $4 ~ /[0-9]+w/ { print $0 }'
Run Code Online (Sandbox Code Playgroud)

你会看到这样的事情:

ossec-mai  1111    ossecm    4w      REG                3,3     ... (deleted)
Run Code Online (Sandbox Code Playgroud)

然后找到仍在使用该文件的进程:

cd /proc/1111/fd
ls -l 4
Run Code Online (Sandbox Code Playgroud)

您可以通过将大小减小为零来释放空间,而无需重新启动服务:

> /proc/1111/fd/4
Run Code Online (Sandbox Code Playgroud)

试一试。