可能重复:
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
/home
确实看上去比较饱满。
du -hs /home
否则表明:
1.4G /home
似乎没有 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
我最近从中删除了许多 GB 的应用程序缓存和日志数据/home
,但是这最多只有几十 GB,远远达不到 的容量/home
。
更新 1:
du -hs --apparent-size /home
1.2G /home
du -hs /home
1.4G /home
这里可能发生什么事?
答案1
检查文件是否仍然以写入模式打开:
lsof | awk '/deleted/ && $4 ~ /[0-9]+w/ { print $0 }'
你会看到类似这样的内容:
ossec-mai 1111 ossecm 4w REG 3,3 ... (deleted)
然后找到仍然使用该文件的进程:
cd /proc/1111/fd
ls -l 4
您可以通过将大小降至零来释放空间,而无需重新启动服务:
> /proc/1111/fd/4
试一试。