And*_*rew 6 ubuntu filesystems nginx du df
我在 DigitalOcean 上运行的 Ubuntu Web 服务器上的磁盘空间似乎已满。我已经找到并删除了大日志文件并重新启动了 Nginx。不过,看起来还是有问题。
df显示它仍然是满的:
$ df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 50G 47G 22M 100% /
Run Code Online (Sandbox Code Playgroud)
但du显示它尚未满:
$ du -shx /
3.2G /
Run Code Online (Sandbox Code Playgroud)
我需要做什么来解决这个问题?
首先检查是否有任何进程仍在引用已删除的文件:
$ sudo lsof / | grep deleted
Run Code Online (Sandbox Code Playgroud)
就我而言,它表明tail仍在使用它:
tail 18961 root 3r REG 253,1 46511271936 1189657 /var/www/myapp/shared/log/production.log (deleted)
Run Code Online (Sandbox Code Playgroud)
按进程名称运行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
Run Code Online (Sandbox Code Playgroud)
在本例中,18961 是进程 ID。现在杀死进程:
kill 18961
Run Code Online (Sandbox Code Playgroud)
现在df显示再次有可用空间:
$ df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 50G 3.3G 44G 7% /
Run Code Online (Sandbox Code Playgroud)