lxxpsp2007 发表于 2012-10-12 16:22

shell 批量删除指定虚拟主机配置脚本

有个需求,过期网站批量删除其配置。
   apache的虚拟主机:   
   <VirtualHost *:80>
      DocumentRoot /opt/www
      ServerName www.aaa.com
   </VirtualHost>
    虚拟主机的配置,不一定就是上面这样的简单4行,有些多几行。肯定必须是在<VirtualHost *:80>行,和</VirtualHost>行 之间的。
    这样的虚拟主机有几百个。需要删除的域名我已经整理出来了有几十个。
    打算写个脚本一次删除了。手工删除几十个,感觉太慢,太2了。
   
    我有个思路: 域名定位行号,以此行号向上匹配<VirtualHost *:80>关键字的 最近的行号,向下同理。
                      然后就简单了,sed 删除 上~下 的行。
   
    我个人的难点就在于,如何做到,向上匹配<VirtualHost *:80>关键字的 得到 最近的行号。向下同理。
         想了半天也不知道怎么实现,或多工具结合。或其他实现方法。
    还请大家多多指教。谢谢。   

linux_c_py_php 发表于 2012-10-12 18:25

本帖最后由 linux_c_py_php 于 2012-10-12 18:26 编辑

用脚本吧, 哥, 别让shell累死, 你得读懂<sed & awk>估计才能处理了多行的东西.

python/php/perl, 全配置文件读入内存, 一个正则匹配删干净了.

lxxpsp2007 发表于 2012-10-13 17:26

本帖最后由 lxxpsp2007 于 2012-10-13 17:26 编辑

回复 2# linux_c_py_php


    谢谢,我用 shell脚本 做到了。
页: [1]
查看完整版本: shell 批量删除指定虚拟主机配置脚本