无法将“apachectl configtest”的输出记录到文件中

时间:2016-02-21 13:42:49

标签: linux apache apache2 tee piping

我想将命令“apachectl configtest”的输出记录到文件中。所以我尝试了以下命令:

root@ubuntu:~# echo $(apachectl -t) >> /tmp/apache_config_check
[Sun Feb 21 14:35:23.614947 2016] [proxy_html:notice] [pid 29249] AH01425: I18n support in mod_proxy_html requires mod_xml2enc. Without it, non-ASCII characters in proxied pages are likely to display incorrectly.
Syntax OK

但它给出了空输出:

root@ubuntu:~# cat /tmp/apache_config_check 

root@ubuntu:~# 

我还尝试了命令本身的变体:

root@ubuntu:~# apachectl -t >> /tmp/apache_config_check

和tee的变体:

root@ubuntu:~# $(apachectl -t) | tee /tmp/apache_config_check

没有运气。

我真的不知道管道输出的任何其他方法,也不知道为什么上面的命令失败了。这是基本的吗?

1 个答案:

答案 0 :(得分:2)

问题是apachectl正在将其输出发送到STDERR而不是STDOUT。因此,您需要按如下方式重定向STDERR:

apachectl -t > /tmp/apache_config_check 2>&1

2>&1是shell-script magic"将文件描述符2(STDERR)上的输出重定向到文件描述符1(STDOUT)"。