首页 > 其他 > 详细

jiaob

时间:2016-07-20 06:50:27      阅读:191      评论:0      收藏:0      [点我收藏+]

写一个脚本,批量生成10个虚拟主机配置:
     /etc/httpd/conf.d/vhosts#.conf
      主机名:www#
      目录:/data/vhosts/www#
      访问日志:logs/www#-access_log
      
     接受命令行参数,作为命令和主机名传递;
      
     使用函数:
      列出:list [-a|vhost_name]
      创建:create vhost_name
      删除:delete [-a|vhost_name]


#!/bin/bash
IP=$(ifconfig | head -n 3 | grep "inet addr" | awk -F: ‘{printf $2}‘ |awk ‘{printf $1}‘)
cp /etc/httpd/conf/httpd.conf{,.bak}
sed -i "s@.*\<NameVirtualHost\>.*@NameVirtualHost $IP:80@:"   /etc/httpd/conf/httpd.conf

 Virtualhost () {
  echo "<VirtualHost $IP:80>" > /etc/httpd/conf.d/vhost$1.conf
  echo -e "\tSerName www$1.magedu.com" >> /etc/httpd/conf.d/vhost$1.conf
  echo -e "\tDocumentRoot /data/vhost/www$1" >> /etc/httpd/conf.d/vhost$1.conf
  echo "<VirtualHost>" >>  /etc/httpd/conf.d/vhost$1.conf

 }
 Hostfile () {
 mkdir -p /data/vhost/www$1
 touch  /data/vhost/www$1/index.html
 echo "www$1" > /data/vhost/www$1/index.html


 }
function del_vhost {
        if [ -e "/etc/httpd/conf.d/vhost$1.conf" ]
        then
                rm -f /etc/httpd/conf.d/vhost$1.conf
        else
                echo "vhost$1 is not exist."
                exit 3;
        fi
  }


  function cur_vhost {
        j=0;
       
        if [ $i == "/etc/httpd/conf.d/welcome.conf"  -o  $i == "/etc/httpd/conf.d/ssl.conf"  -o  $i == "/etc/httpd/conf.d/manual.conf" ]
        then
             continue
       else
               vhosts[$j]=$i
         fi
               let j++
       

        vhosts_length=${#vhosts[*]}
        if [ $vhosts_length -eq 0 ]
        then
                echo -e "\033[31mNo vhost now!\033[0m"
        else
                echo "current vhost display:"
                for((i=0;i<${#vhosts[*]};i++));
                do
                        echo -n -e "\033[32m`vhost ${vhosts[i]}`\033[0m "
                done
                echo
        fi
}


 for i in `seq 1 $1 ` ;do
    if [ -e /etc/httpd/conf.d/vhost$1.conf ];
      then function del_vhost $1
      else
             Virtualhost $i
              Hostfile $i
     fi

  done
  echo "virtualhost has ssetup " 

for i in `ls /etc/httpd/conf.d/*.conf` ;do

        function cur_vhost


   done



jiaob

原文:http://zhangde.blog.51cto.com/11424413/1827868

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!