当我df -h
在 Linux 服务器上执行此操作时,它显示 100% 已使用。此后我删除了文件以腾出空间。当我du -sh ./*
查看每个目录的容量时,它并没有达到我的驱动器的 2 TB 容量,而且我的服务器/网络监视器继续告诉我我已经使用了 100% 的空间。为什么?
# du -sh ./*
4.0K ./%1
32G ./datapump
4.0K ./Desktop
1.9G ./faxes
12K ./guru
2.1G ./home
344K ./named
9.5M ./oradiag_root
4.0K ./svnpassword
0 ./tape_error
20G ./test
# df
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
1.9T 1.9T 0 100% /
/dev/sda1 99M 21M 74M 22% /boot
tmpfs 4.9G 0 4.9G 0% /dev/shm
//192.168.231.16/backup
3.7T 669G 3.0T 18% /home/MARMOT
答案1
即使日志文件已清空,Linux 服务器容量仍显示 100% 使用
如果删除仍处于打开状态的文件(进程仍将其打开),则在该进程被终止或发送 HUP 信号之前,空间将不会被释放。
如果删除的文件来自 syslog(sysklogd 或 rsyslog),请重新启动或重新加载守护程序。
如果删除的文件是 Apache 或某些其他 Web 服务的一部分,请重新启动该服务。
如果这是自定义应用程序,请重新启动它。或者,您可以尝试发送 HUP 信号 ( kill -HUP PID
) 以查看是否会关闭文件并重新打开它。
如果您不知道打开文件的进程是什么,您可以使用 lsof 查找打开的已删除文件。
$ lsof -P -n | grep deleted
cat 12313 gene 1w REG 8,1 0 3129916 /tmp/stackexchange.log (deleted)
答案2
df -h
打印全局统计数据
du -sh ./*
根据您所在的位置计算并打印内容。这是因为.
中的点./*
表示当前目录。
跑去pwd
看看你在哪里。
要获取顶部统计信息,您需要移至层次结构树的底部:
cd /
现在尝试:
du -sh
您也可以du -sh /*
从任何位置跑向整棵树。请注意,斜杠之前没有点/
。/*
表示来自目录树底部的所有目录。
有些目录对于普通用户来说是无法读取的。要阅读它们,还可以使用带有 的命令sudo
。前任:
sudo du -sh /*