I want to log the output of the command "apachectl configtest" to a file. So I tried the following commands:
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
But It gave empty output:
root@ubuntu:~# cat /tmp/apache_config_check root@ubuntu:~#
I also tried a variation on the command itself:
root@ubuntu:~# apachectl -t >> /tmp/apache_config_check
and a variation on tee:
root@ubuntu:~# $(apachectl -t) | tee /tmp/apache_config_check
I don't really know any other methods to pipe the output, nor I know why the above commands failed. Is it something fundamental?
The problem is that
apachectl is sending its output to STDERR instead of STDOUT. So, you need to redirect STDERR as follows:
apachectl -t > /tmp/apache_config_check 2>&1
2>&1 is shell-script magic saying "redirect output on file descriptor 2 (STDERR) to file descriptor 1 (STDOUT)".