已删除的 Apache 访问日志仍然占用空间

已删除的 Apache 访问日志仍然占用空间

我删除了 7GB 的 apache2 other_vhosts_access.log.1,以释放我们服务器上的一些空间。基本上,我删除了除最新访问日志之外的所有日志。最大的日志未压缩 - 我假设它没有经过 logrotate(正在运行)。

运行 df -h 没有显示额外空间,并且我尝试了等等的所有组合apache/apachectl restart/reload/graceful,正如其他问题中提到的那样 - 没有结果。lsof也没有显示打开的文件。

答案1

很可能您已经删除了日志,但是 apache 已将其锁定。

您应该使用lsof并查找(已删除)。IBM 指南这里。修复的方法是重启apache进程来释放该文件。

答案2

尝试将 /dev/null 复制到您的日志文件。这应该会截断您的文件,而不会关闭 apache 持有的文件句柄...

cp /dev/null other_vhosts_access.log.1

答案3

我遇到了同样的问题,并按如下方式解决。

问题:

我手动删除了access_log目录error_log中的文件/var/www/vhosts/mywebsite/logs/mywebsite1/以释放空间,但即使文件消失了,空间也没有释放。

解决方案:

我使用lsof按大小排序来搜索大文件(命令发现这里):

lsof -s | awk '$5 == "REG"' | sort -n -r -k 7,7 | head -n 100

access_log我在另一条路径上找到了两个大文件error_log(注意与之前的路径的区别):

/var/www/vhosts/system/mywebsite1/logs/

我使用命令重置了这两个文件:

:>/var/www/vhosts/system/mywebsite1/logs/access_log

:>/var/www/vhosts/system/mywebsite1/logs/error_log

文件已被清空并且空间已被释放。

希望能够帮助到大家。

答案4

就我而言,我需要重新启动rsyslog,它是处理我的 ubuntu 系统上的日志的程序,它释放了所有的磁盘空间。

这可以重新启动运行sudo service rsyslog restart,或者如果您使用的是 16.04+ sudo systemctl restart rsyslog

相关内容