码迷,mamicode.com
首页 > 其他好文 > 详细

jiaob

时间:2016-07-20 06:50:39      阅读:478      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!