删除了 24GB 文件,但可用空间没有变化。可能发生了什么?

删除了 24GB 文件,但可用空间没有变化。可能发生了什么?

我们有一个安装了 Apache2 的虚拟机,我们忘记安装日志轮转,我们从 Apache2 获得了 24GB 的日志,我们删除了这 24GB 的日志文件,但磁盘没有发生任何变化,就像我没有删除一样根本没有日志。有谁明白可能发生了什么吗?

root@Web:~# cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.04
DISTRIB_CODENAME=lucid
DISTRIB_DESCRIPTION="Ubuntu 10.04.4 LTS"

root@Web:~# df -kh
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              29G   27G  675M  98% /
none                  744M  176K  744M   1% /dev
none                  748M     0  748M   0% /dev/shm
none                  748M  568K  748M   1% /var/run
none                  748M     0  748M   0% /var/lock
none                  748M     0  748M   0% /lib/init/rw
none                   29G   27G  675M  98% /var/lib/ureadahead/debugfs

root@Web:~# du -kh /var/log/apache2
24G     /var/log/apache2

root@Web:~# rm /var/log/apache2/*

root@Web:~# du -kh /var/log/apache2
4.0K    /var/log/apache2

root@Web:~# df -kh
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              29G   27G  673M  98% /
none                  744M  176K  744M   1% /dev
none                  748M     0  748M   0% /dev/shm
none                  748M  568K  748M   1% /var/run
none                  748M     0  748M   0% /var/lock
none                  748M     0  748M   0% /lib/init/rw
none                   29G   27G  673M  98% /var/lib/ureadahead/debugfs

答案1

这很可能是因为您实际上并未删除这些文件。
我认为发生的事情如下:

  1. 创建日志文件,并使用文件句柄将程序(读取:Apache)写入日志文件。
    该文件也会显示在您的目录列表中。
  2. rm您尝试使用类似的方式删除文件而 Apache 仍然开放它们
  3. 这些文件现已部分删除。目录列表消失了。但该文件仍然存在,并将保留在磁盘上,直到所有指向它的句柄都关闭。

最简单的方法是通过向 Apache 发送 SIGHUP 信号来重新启动 Apache。 (向 Apache 发送 HUP 告诉它优雅地重新启动,这会使其关闭/重新打开日志文件。)您可以通过发送这样的命令kill -1(请参阅人杀了解更多信息)。

答案2

您删除了日志,但 Apache 使文件保持打开状态。

一旦您重新启动(而不是重新加载)它,该空间就会被回收。

下次,您可以使用> logfile或截断日志而不是删除它们cat /dev/null > logfile

相关内容