一些版本发布脚本(修改nginx配置文件)

8 篇文章 0 订阅
#! /usr/bin/env bash
read -p "Enter env:" env_name
war_name=pisa-cn-qcloud.war
app_name=pisaCnWeb
deploy=deployCnQcloud

if test "$env_name" = "qa"
then
  war_name=pisa-cn-qcloud-qa.war
  app_name=pisaCnWebQa
  deploy=deployCnQcloudQa
fi

echo step 1:$deploy!
sshpass -p littlewar ssh -o StrictHostKeyChecking=no root@10.130.161.48 \
"cd /root/.hudson/jobs/Pisa-Java-Master/workspace 
/opt/local/gradle/bin/gradle $deploy
exit"
echo -e "\n"

rm -f /opt/local/pisa/pisa_cn_qcloud/$war_name
echo step 2:rm $war_name successfully!
echo -e "\n"
 
mv -f /opt/local/pisa/pisa_outer/$war_name /opt/local/pisa/pisa_cn_qcloud/$war_name
echo step 3:mv $war_name successfully!
echo -e "\n"

echo step 4:rsync
outIpList=`cat /opt/local/pisa/pisa_cn_qcloud/out-ip-file`
rsync_war() {
  echo rsync: $1
  rsync -auvzP /opt/local/pisa/pisa_cn_qcloud/$war_name pisa@$1::pisa --password-file=/opt/local/pisa/pisa_cn_qcloud/rsyncpwd
  echo -e "\n"
  return 0 
}

for i in $outIpList
do
    rsync_war $i
done


#! /usr/bin/env bash
read -p "Enter env:" env_name
war_name=pisa-cn-qcloud.war
app_name=pisaCnWeb

if test "$env_name" = "qa"
then
  war_name=pisa-cn-qcloud-qa.war
  app_name=pisaCnWebQa
fi

data_path=/data/pisa_file/$war_name
app_path=/data/dev_env/jetty/standalone/$app_name
web_config=/data/pisa_file/script/inner-ip-file
sshpass_path=/data/dev_env/sshpass
user_name=lishuai.feng
password=1234qwer!

echo step :start_jetty
innerIpList=`cat $web_config`

start_jetty() {
  echo start_jetty: $1
  $sshpass_path/sshpass -p $password ssh -o StrictHostKeyChecking=no $user_name@$1 \
  "sudo rm -f $app_path/webapps/pisa-web.war
  sudo mv $data_path $app_path/webapps/pisa-web.war
  cd $app_path
  sudo ./server.sh stop
  sudo ./server.sh start
  exit"
  echo -e "\n"
  return 0
}

for i in $innerIpList
do
    start_jetty $i
done


#!/bin/sh

#nginx配置文件路径
NGINX_CONFIG_PATH=./nginx.conf
web_config=/data/pisa_file/script/inner-ip-file
UPDATE_USING="/tmp/update_using"

#判断nginx配置文件路径是否正确
if [ ! -f "$NGINX_CONFIG_PATH" ]; then
    echo "nginx config file path is not exist......"
    exit
fi

innerIpList=`cat $web_config`
for i in $innerIpList
do
    ipList="$ipList|$i"
done

#获取所有需要在行首添加井号的行号
NEED_ADD_WELL_NUMBER=()
getAllNeedAddWellNumberLine() {
    length=0
    cat $NGINX_CONFIG_PATH | egrep -n "^ {0,}server {1,}(${ipList#*|})" > $UPDATE_USING
    exec 9<&0 <   $UPDATE_USING
    cat $UPDATE_USING
    while read LINE SERVER IP WEIGHT; do
        NEED_ADD_WELL_NUMBER[$length]=`echo $LINE | sed "s/://g"`
        length=`expr $length + 1`
    done
    exec 0<&9 9<&-
}

#获取所有需要删除行首井号的行号
NEED_DEL_WELL_NUMBER=()
getAllNeedDelWellNumberLine() {
    length=0
    cat $NGINX_CONFIG_PATH | egrep -n "^ {0,}#server {1,}(${ipList#*|})" > $UPDATE_USING
    exec 9<&0 <   $UPDATE_USING
    while read LINE SERVER IP WEIGHT; do
        NEED_DEL_WELL_NUMBER[$length]=`echo $LINE | sed "s/://g"`
        length=`expr $length + 1`
    done
    exec 0<&9 9<&-
}

getAllNeedAddWellNumberLine
getAllNeedDelWellNumberLine

echo $NEED_ADD_WELL_NUMBER
echo "nginx config file path:" $NGINX_CONFIG_PATH

#在指定行前面加上井号
for line in ${NEED_ADD_WELL_NUMBER[@]}; do
    echo "start add well number before line:" ${line}
    sed -i "${line}s/^[ \t]*//; ${line}s/^/         #/" $NGINX_CONFIG_PATH
done

#删除指定行前面的井号
for line in ${NEED_DEL_WELL_NUMBER[@]}; do
    echo "start delete well number before line:" ${line}
    sed -i "${line}s/^[ \t]*//; ${line}s/^#/         /" $NGINX_CONFIG_PATH
done

echo "nginx config modify success! now can reload nginx......"

#reload nginx
#/data/dev_env/nginx/sbin/nginx -s reload

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值