无法将 "apachectl configtest" 的输出记录到文件

Unable to log output of "apachectl configtest" to a file

我想将命令 "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

以及 T 恤的变体:

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

运气不好。

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

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

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

2>&1 是 shell-脚本魔法说法 "redirect output on file descriptor 2 (STDERR) to file descriptor 1 (STDOUT)"。