无法在 apache 上截断/清除 error.log,但可以使用 nano 手动完成

Sal*_*ali 6 log-files apache-2.4

我试图用命令清除我的 apache 服务器上的 error.log 文件的内容

sudo >error.log

sudo truncate -s0 error.log
Run Code Online (Sandbox Code Playgroud)

但在这两种情况下,我都得到了-bash: error.log: Permission denied.

我在停止 apache 时尝试了同样的事情,但仍然得到相同的消息。之后,我尝试清除它sudo nano error.log并能够删除所有内容。

那么为什么我不能正确清除日志呢?

kri*_*sFR 13

你应该试试这个:

sudo sh -c ">/var/log/apache2/error.log"
Run Code Online (Sandbox Code Playgroud)

  • 在 sudo 命令甚至运行之前,重定向运算符由本地 shell 评估。`sudo > foo` 打开文件 foo 进行写入,**然后**运行命令 `sudo `。如果将它放在引号内或转义重定向运算符,则会在子 shell 的上下文中对其进行评估。 (4认同)