即使日志文件已清空,Linux 服务器容量仍显示 100% 使用

即使日志文件已清空,Linux 服务器容量仍显示 100% 使用

当我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 /*

相关内容