Quiero registrar la salida del comando "apachectl configtest" en un archivo. Así que probé los siguientes comandos:
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
Pero dio salida vacía:
root@ubuntu:~# cat /tmp/apache_config_check root@ubuntu:~#
También probé una variación del comando en sí:
root@ubuntu:~# apachectl -t >> /tmp/apache_config_check
y una variación de la camiseta:
root@ubuntu:~# $(apachectl -t) | tee /tmp/apache_config_check
Sin suerte
Realmente no conozco ningún otro método para canalizar la salida, ni sé por qué fallaron los comandos anteriores. ¿Es algo fundamental?
El problema es que apachectl
envía su salida a STDERR en lugar de STDOUT. Por lo tanto, debe redirigir STDERR de la siguiente manera:
apachectl -t > /tmp/apache_config_check 2>&1
El 2>&1
es magia de script de shell que dice "redirigir la salida en el descriptor de archivo 2 (STDERR) al descriptor de archivo 1 (STDOUT)".