Apache-2.2

通過 apachectl -S 搜尋結果

  • March 23, 2012

我有一個大約有 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'

謝謝,所以!

引用自:https://serverfault.com/questions/372774