Apache-2.2
通過 apachectl -S 搜尋結果
我有一個大約有 300 個虛擬主機的伺服器。當我想確保將特定的 httpd.conf 文件載入到虛擬主機配置中並且語法正確時,我執行
apachectl -S
. 但問題是,我得到了大量的輸出。我已經嘗試
apacectl -S | grep 'foo'
並apachectl -S > foo.txt
嘗試使這些數據更易於管理,但是命令的輸出不利於 grepping 或推入文本文件。當我嘗試
apachectl -S | grep 'foo'
時,它只是返回apachectl -S
.當我嘗試
apachectl -S > foo.txt
時, foo.txt 是一個空文件。這可能與伺服器的配置方式有關,因為我能夠在本地電腦上成功 grep。
有什麼建議麼?
apachectl 的輸出被發送到 stderr。您正在使用的命令嘗試過濾標準輸出。要以您描述的方式使用 grep,請將 stderr 重定向到 stdout,如下所示:
apachectl -S 2>&1 | grep 'blah'
哈哈,看起來這個問題已經在 Stack Overflow 上得到了回答:
https://stackoverflow.com/questions/6505932/how-to-filter-apache-virtual-host-listing-using-grep
因為
apachectl -S
(它實際上是一個包裝器httpd -S
)通過 STDERR 發送其輸出,所以我需要將 STDERR 重定向到 STDOUT,然後對其進行 grep。
apachectl -S 2>&1 | grep 'foo'
謝謝,所以!