我们有一个安装了 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
这很可能是因为您实际上并未删除这些文件。
我认为发生的事情如下:
- 创建日志文件,并使用文件句柄将程序(读取:Apache)写入日志文件。
该文件也会显示在您的目录列表中。 rm
您尝试使用类似的方式删除文件而 Apache 仍然开放它们。- 这些文件现已部分删除。目录列表消失了。但该文件仍然存在,并将保留在磁盘上,直到所有指向它的句柄都关闭。
最简单的方法是通过向 Apache 发送 SIGHUP 信号来重新启动 Apache。 (向 Apache 发送 HUP 告诉它优雅地重新启动,这会使其关闭/重新打开日志文件。)您可以通过发送这样的命令kill -1
(请参阅人杀了解更多信息)。
答案2
您删除了日志,但 Apache 使文件保持打开状态。
一旦您重新启动(而不是重新加载)它,该空间就会被回收。
下次,您可以使用> logfile
或截断日志而不是删除它们cat /dev/null > logfile