![我可以删除 apache 中的错误日志文件吗?这会引起问题吗?](https://linux22.com/image/598249/%E6%88%91%E5%8F%AF%E4%BB%A5%E5%88%A0%E9%99%A4%20apache%20%E4%B8%AD%E7%9A%84%E9%94%99%E8%AF%AF%E6%97%A5%E5%BF%97%E6%96%87%E4%BB%B6%E5%90%97%EF%BC%9F%E8%BF%99%E4%BC%9A%E5%BC%95%E8%B5%B7%E9%97%AE%E9%A2%98%E5%90%97%EF%BC%9F.png)
答案1
如果必须清除日志文件,请执行
cp /dev/null /var/log/file
或者
echo > /var/log/file
这会截断文件但不关闭任何打开的文件句柄。
编辑:使用logrotate
来处理文件是更好的长期解决方案。截断文件应该是一种应急措施。
答案2
我更推荐使用 logrotate,而不是直接删除旧日志文件。稍后您可能需要它们来调试某些东西,或者找出系统运行良好的模式,以便进行比较。
备份和恢复如此受欢迎是有原因的。但是,如果这不是任何生产服务器或重要的东西,我不会担心删除它们。
答案3
如果您不打算使用它们,您可以将其删除。我建议您删除所有日志,但不要删除当前日志,如果可以的话,我应该使用日志轮换。
答案4
如果正在使用,删除日志将使 apache 重新加载以重新打开刚刚删除的文件。您可以尝试的是 logrotate,或者尝试清空文件。不过我认为您需要SIGUSR1
apache。
这关联可能会有帮助。
编辑:刚刚测试过:
# > /var/log/apache2/access.log
# tail -F /var/log/apache2/access.log
.. Still prints lines ....
# rm /var/log/apache2/access.log ; touch /var/log/apache2/access.log
# tail -F /var/log/apache2/access.log
.. displays nothing ....
# kill -USR1 $(pidof apache2)
# tail -F /var/log/apache2/access.log
.. prints lines again ....
编辑2:感谢@voretaq提供有关 apache 信号的更多信息。SIGUSR1
确实比 暴力程度要小SIGHUP
。