web修改linux 文件,通过线上可视化web管理系统实现线上对linux服务器的nginx配置文件域名添加、修改等操作...

21运维原创,转载请注明出处。

由于业务特殊需要,不同的人员需要操作不同站点配置,分配具体权限以后,通过前台web即可实现ng的控制。这里简单写了一个脚本做线上nginx域名的添加以及修改操作。

思路:

管理人员(不同人员具有不同的adminid,权限不一样)登录管理系统,进行web可视化操作,添加或修改域名时,入库到mysql中并触发链接调用的php文件,比如curl http://a.com/add.php,将触发后调用的内容写入adddomain.txt,编写shell通过执行adddomain.txt实现nginx上的配置文件控制。

修改域名也是一个思路,将老域名和新域名输入到txt文件中后,shell截取替换。

添加绑定脚本:

#!/bin/bash

#work: add domain of nginx.site.conf

#date:2017.4.14

#author:21yunwei

objdir=/usr/local/nginx/conf/vhost/

domainlist=/home/yunwei/adddomain.txt

/usr/bin/dos2unix $domainlist

time=`date +%Y%m%d_%H%M%S`

#Domain_List=`cat /home/yunwei/adddomain.txt`

function AddDomain(){

adddomain=`echo $i |awk '{print $1}'`

adminid=`echo $i |awk '{print $2}'`

case ${adminid} in

"10")

objconf=legen.conf

;;

"11")

objconf=apple.conf

;;

"12")

objconf=alien.conf

;;

"13")

objconf=genius.conf

;;

"14")

objconf=test.conf

;;

*)

echo "$adminid not exist"

;;

esac

num=`grep -n "server\_name" ${objdir}${objconf} |awk 'NR==1{print $1}' |awk -F":" '{print $1}'`

sed -i "${num}a server_name ${adddomain};" ${objdir}${objconf}

}

function RestartNginx(){

cp ${objdir}${objconf} ${objdir}${objconf}.old

/usr/local/nginx/sbin/nginx -t >/dev/null 2>&1

ret=$?

if [ $ret -eq 0 ]

then

/usr/local/nginx/sbin/nginx -s reload

else

echo "Change domain error,go back";

rm -f ${objdir}${objconf}

mv ${objdir}${objconf}.old ${objdir}${objconf}

/usr/local/nginx/sbin/nginx -s reload

exit;

fi

}

cat $domainlist | while read i

do

AddDomain $i

RestartNginx

done

cp $domainlist /home/yunwei/domainHistory/$time.txt && echo > $domainlist

说明:1,该脚本并不完善,还有很多可以完善和修改之处,比如删除等操作,这里只提供一个我自己做的简单思路,2,由于web操作过来的是win界面的,txt格式不正确,可以通过cat -A txt文件名查看,需要通过dos2unix进行格式转换,否则脚本截取的参数不正确导致无法正常运行。

替换程序思路:

filename=/home/yunwei/domain.txt

/usr/bin/dos2unix $filename

objdir=/usr/local/nginx/conf/vhost/

oldDomain=`cat $filename | awk 'NR==2{print $1}'`

objconf=`grep -l "$oldDmain" ${objdir}*`

newDomain=`cat $filename | awk 'NR==2{print $2}'`

sed -i "s/$oldDomain/$newDomain/g" $objconf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值