ero*_*ppa 10 linux filesystems apache-2.2
我们有一个运行在 linux 上的 apache 服务器写入一个非常大的日志文件(access_log)。我们的服务器将开始耗尽空间。有没有办法在不重新启动服务器的情况下删除或截断文件(我们不希望有任何停机时间)。
小智 14
如何重置日志文件
迟早,您会想要重置您的日志文件(access_log和error_log),因为它们太大了,或者充满了您不需要的旧信息。
access_log 通常每 10,000 个请求增加 1Mb。
大多数人替换日志文件的第一次尝试只是移动日志文件或删除日志文件。这不起作用。
Apache 将继续以与移动日志文件之前相同的偏移量写入日志文件。这会导致创建一个与旧日志文件一样大的新日志文件,但它现在包含数千(或数百万)个空字符。
正确的过程是移动日志文件,然后向 Apache 发出信号告诉它重新打开日志文件。
Apache 使用SIGHUP (-1) 信号发出信号。例如
mv access_log access_log.old kill -1 `cat httpd.pid`
注意:httpd.pid是一个包含 Apache httpd 守护进程进程 ID 的文件,Apache 将其保存在与日志文件相同的目录中。
许多人使用这种方法每晚或每周更换(和备份)他们的日志文件。
http://httpd.apache.org/docs/1.3/misc/howto.html#logreset
小智 9
日志轮换是长期解决方案,但对您当前问题的答案是截断文件,如下所示:
sudo cat /dev/null > /var/log/httpd/access_log
Run Code Online (Sandbox Code Playgroud)
我假设您没有以 root 身份登录并假设您的日志文件的位置,但您应该能够根据需要调整命令并快速截断打开的日志文件,而无需触及您正在运行的 apache 进程。
| 归档时间: |
|
| 查看次数: |
52655 次 |
| 最近记录: |