0

多くの仮想ホストで構成されたApacheサーバーがあり、grepを使用してそれらをフィルタリングできるようにしたいと考えています..

# httpd -S | grep "myStr"

.. ただし、このアプローチは機能しません。すべての仮想ホストが一覧表示されています。実際にこれを行う方法はありますか?

httpd -S からの出力のサンプルを次に示します。

[root@224136 config]# httpd -S
VirtualHost configuration:
184.22.xxx.33:80       is a NameVirtualHost
         default server default (/etc/httpd/conf/kloxo/default.conf:4)
         port 80 namevhost default (/etc/httpd/conf/kloxo/default.conf:4)
         port 80 namevhost webmail (/etc/httpd/conf/kloxo/webmail.conf:6)
         port 80 namevhost xxxxxx.com (/home/httpd/xxxxxx.com/conf/kloxo.xxxxxxx.com:4)
         port 80 namevhost twptest.xxxxxx.com (/home/httpd/twptest.xxxxxx.com/conf/kloxo.twptest.xxxxxx.com:4)
         port 80 namevhost yyyyyyy.com (/home/httpd/yyyyyy.com/conf/kloxo.yyyyyyy.com:4)
         port 80 namevhost zzzzzzzz.com (/home/httpd/zzzzzzz.com/conf/kloxo.zzzzzzzz.com:4)
         port 80 namevhost expenses.zzzzzzzz.com (/home/httpd/expenses.zzzzzzz.com/conf/kloxo.expenses.zzzzzzz.com:4)
         port 80 namevhost aaaaaaaa.cz (/home/httpd/aaaaaaaaaaaa.cz/conf/kloxo.aaaaaaaaaaa.cz:4)
         port 80 namevhost aaaaaaaaaaa.cz (/home/httpd/aaaaaaaaaaaaa.cz/conf/kloxo.aaaaaaaaaa.cz:142)
4

2 に答える 2

1

私はちょうど同じ必要があり、以下を使用しました:

 /usr/sbin/apache2ctl -S 2>&1 | awk '/namevhost/  {print $4;} '

awk でクリーンアップする前に、SDTERR (2) を STDOUT (&1) にリダイレクトします。

于 2012-03-05T09:37:53.980 に答える
1

「すべての仮想ホストがリストされているのをまだ見ている」と言うので、以下に示すようにSTDERRをSTDOUTにリダイレクトする必要があると思われます(bashを想定)out.pyは、を使用してSTDERRに出力を書き込む単なるpythonscriptですsys.stderr.write()

$ ./out.py | grep zzzzzzzz

VirtualHost configuration:
184.22.xxx.33:80       is a NameVirtualHost
         default server default (/etc/httpd/conf/kloxo/default.conf:4)
         port 80 namevhost default (/etc/httpd/conf/kloxo/default.conf:4)
         port 80 namevhost webmail (/etc/httpd/conf/kloxo/webmail.conf:6)
         port 80 namevhost xxxxxx.com (/home/httpd/xxxxxx.com/conf/kloxo.xxxxxxx.com:4)
         port 80 namevhost twptest.xxxxxx.com (/home/httpd/twptest.xxxxxx.com/conf/kloxo.twptest.xxxxxx.com:4)
         port 80 namevhost yyyyyyy.com (/home/httpd/yyyyyy.com/conf/kloxo.yyyyyyy.com:4)
         port 80 namevhost zzzzzzzz.com (/home/httpd/zzzzzzz.com/conf/kloxo.zzzzzzzz.com:4)
         port 80 namevhost expenses.zzzzzzzz.com (/home/httpd/expenses.zzzzzzz.com/conf/kloxo.expenses.zzzzzzz.com:4)
         port 80 namevhost aaaaaaaa.cz (/home/httpd/aaaaaaaaaaaa.cz/conf/kloxo.aaaaaaaaaaa.cz:4)
         port 80 namevhost aaaaaaaaaaa.cz (/home/httpd/aaaaaaaaaaaaa.cz/conf/kloxo.aaaaaaaaaa.cz:142)

STDERR を STDOUT に送信します。

$ ./out.py 2>&1 | grep zzzzzzzz
         port 80 namevhost zzzzzzzz.com (/home/httpd/zzzzzzz.com/conf/kloxo.zzzzzzzz.com:4)
         port 80 namevhost expenses.zzzzzzzz.com (/home/httpd/expenses.zzzzzzz.com/conf/kloxo.expenses.zzzzzzz.com:4)
于 2011-06-28T13:15:13.610 に答える