首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用grep过滤Apache虚拟主机列表

如何使用grep过滤Apache虚拟主机列表
EN

Stack Overflow用户
提问于 2011-06-28 19:47:50
回答 2查看 2.3K关注 0票数 0

我有一个配置了许多虚拟主机的Apache服务器,并希望能够使用grep过滤它们,如下所示。

代码语言:javascript
复制
# httpd -S | grep "myStr"

。。然而,这种方法不起作用-我仍然看到我所有的虚拟主机都列出了。你知道我怎么才能做到这一点吗?

以下是httpd -S的输出示例

代码语言:javascript
复制
[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)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-28 21:15:14

既然您说“我仍然看到列出了我所有的虚拟主机”,我怀疑您需要将STDERR重定向到STDOUT,如下所示(假设bash) out.py只是一个使用sys.stderr.write()将一些输出写到STDERR的output脚本

代码语言:javascript
复制
$ ./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:

代码语言:javascript
复制
$ ./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)
票数 1
EN

Stack Overflow用户

发布于 2012-03-05 17:37:54

我只是有同样的需求,并使用了以下内容:

代码语言:javascript
复制
 /usr/sbin/apache2ctl -S 2>&1 | awk '/namevhost/  {print $4;} '

它将SDTERR (2)重定向到STDOUT (&1),然后让awk清理它

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6505932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档