您的位置:首页 > 其它

jiaob

2016-07-19 19:14 429 查看
写一个脚本,批量生成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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: