为什么即使删除文件后 df -h 仍然显示 100% 已满?

为什么即使删除文件后 df -h 仍然显示 100% 已满?

我的 Ubuntu Web 服务器(运行在 DigitalOcean 上)的磁盘空间似乎已满。我已经找到并删除了大型日志文件,并重新启动了 Nginx。但是,似乎仍然存在问题。

df显示它仍然满了:

$ df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        50G   47G   22M 100% /

du显示它还未满:

$ du -shx /
3.2G    /

我需要做什么才能解决这个问题?

答案1

首先检查是否还有任何进程引用已删除的文件:

$ sudo lsof / | grep deleted

就我而言,它表明tail仍在使用它:

tail      18961       root    3r   REG  253,1 46511271936 1189657 /var/www/myapp/shared/log/production.log (deleted)

通过进程名称运行ps x和过滤,我得到了需要终止的进程 ID:

$ ps x | grep tail
 3376 pts/1    S+     0:00 grep --color=auto tail
18961 ?        Ss     0:00 tail -f /var/www/myapp/current/log/production.log

在本例中,18961 是进程 ID。现在终止该进程:

kill 18961

现在df又显示有可用空间:

$ df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        50G  3.3G   44G   7% /

相关内容