2011-06-28 10 views
0

を使用してリストApacheのバーチャルホストをフィルタリングするために、私は多くの仮想ホストで設定されたApacheサーバを持っているので、同じようグレップを使用してそれらをフィルタリングできるようにしたいと思います..どのようにgrepの

# httpd -S | grep "myStr" 

...しかし、このアプローチ動作しません - 私はまだすべての私の仮想ホストが表示されています。どのように私は実際にこれを行うことができます任意のアイデア?あなたは下図のように、私は(あなたがSTDOUTにSTDERRをリダイレクトする必要がある疑いがある「私はまだ私のすべての仮想ホストがリストされて見ている」と言うので

は、ここでのhttpd -S

[[email protected] 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) 
+1

それをクリーンアップするために取得する前にSTDOUT(& 1)に(2)SDTERRをリダイレクトしますが、出力を投稿することができますここで 'httpd -S'から(私はテストできないようにそれをインストールしていない)。 grepはSTDOUT上で動作し、 'httpd -S'はSTDOUTに配送しますか?リダイレクションが必要な場合は... –

+0

まあ、STDOUTに配信するようです。 [root @ 224136 config]#httpd -S VirtualHostの設定: 184.22.xxx.xx:80はNameVirtualHostです。 デフォルトサーバーのデフォルト(/ etc/httpd/conf/(/etc/httpd/conf/kloxo/default.conf:4) ポート80 namevhostウェブメール(/etc/httpd/conf/kloxo/webmail.conf:6) ポート80 namevhost xoundesign.com(/home/httpd/xxxxxxxx.com/conf/kloxo.xxxxxxxx.com:4) ポート80 namevhost twptest.xxxxxxxx.com(/ home/httpd/........ – Xoundboy

+0

代わりにあなたの質問を更新してください –

答えて

1

からの出力のサンプルです

:仮定のbash) out.pyはSTDOUTにSTDERRを送る今 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に何らかの出力を書き込みだけpythonscriptです210

+0

ありがとう - これは完全に働いたが、私はhttpd -SコマンドがSTDERRではなくSTDOUTに書き込む理由について混乱しています。出力はエラーではないので、少し論理的ではありません。仮想ホストのリストだけです。 – Xoundboy

1

私はちょうど同じ必要性を持っていたし、次の手順を使用:

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

それは、awkは

関連する問題