#!/bin/sh if [ $# != 2 ] ; then echo "需要2个参数" exit 1; fi IS_NEW_SERVER=${2} port=22 env=${1} sshAddr=() envs=() masterAddr='' if [ ${1} == 'zy' ] ; then sshAddr=( "yjz-zy-game1" "yjz-zy-game2" "yjz-zy-game3" "yjz-zy-game4" "yjz-zy-game5") envs=("zy1" "zy2" "zy3" "zy4" "zy5") masterAddr=${sshAddr[0]} echo ${masterAddr} port=22 env='zy1' elif [ ${1} == 'alpha' ] ; then sshAddr=("zyzalpha") envs=("alpha") masterAddr=${sshAddr[0]} echo ${masterAddr} port=22 env='alpha' elif [ ${1} == 'dev' ] ; then sshAddr=("zyzdev") envs=("dev") masterAddr=${sshAddr[0]} echo ${masterAddr} port=22 env='dev' # ch1 elif [ ${1} == 'ch' ] ; then sshAddr=("yjz-ch-game1" "yjz-ch-game2" "yjz-ch-game3" "yjz-ch-game4" "yjz-ch-game5" "yjz-ch-game6") envs=("ch1" "ch2" "ch3" "ch4" "ch5" "ch6") masterAddr=${sshAddr[0]} echo ${masterAddr} port=22 env='ch1' else echo "需要一个参数指明服务器" exit 1; fi echo "|*********************|\n" if branch=$(git symbolic-ref --short -q HEAD) then echo "git on branch $branch \n" else echo "git not on any branch \n" fi echo "|*********************|\n" echo "and config.json is: \n" node ./config.js ${env} ${1} cat './game-server/config.json' echo "\n" echo "|*********************|\n" echo "and server_const is \n" cat './shared/resource/jsons/server_const.json' | grep DEBUG_PAY cat './shared/resource/jsons/server_const.json' | grep DEBUG_TIME cat './shared/resource/jsons/server_const.json' | grep CHECK_WORD cat './shared/resource/jsons/server_const.json' | grep CAN_PAY cat './shared/resource/jsons/server_const.json' | grep SKIP_ENCODE echo "\n" echo "|*********************|" read -r -p "Are You Sure? [Y/n]" input sshAndSetup(){ # 如果是新服,就配置服务器环境 if [ ${IS_NEW_SERVER} == 'true' ] ; then sshAddr=$1 echo "配置服务器环境" ssh $sshAddr ' npm install xtransit -g apt update apt install node-typescript echo '${sshAddr}' > /etc/aliashost wget http://logtail-release-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/linux64/logtail.sh -O logtail.sh;chmod 755 logtail.sh ./logtail.sh install auto mkdir /zyz_logs/xprofiler cd /root/zyz source npm-install.sh ' fi } sshFun(){ curEnv=$1 sshAddr=$2 echo $curEnv $env if [ $curEnv == $env ] then ssh $sshAddr ' cd /root/zyz/game-server pm2 kill ./pm2Starter.sh ' else ssh $sshAddr ' cd /root/zyz/game-server pm2 kill ./pm2StarterDistribute.sh '${env} ${curEnv}' ' fi } case $input in [yY][eE][sS]|[yY]) echo "Yes" length=${#sshAddr[@]} int=1 while(( $int<=$length )) do addr=${sshAddr[$int-1]} destUrl='root@'${addr}':/root/zyz/' echo $destUrl rsync -av --include '.babelrc' --include '.eslintrc.js' --exclude-from='exclude-file.txt' --progress --inplace --no-owner --no-group --rsh='ssh -p'${port} . ${destUrl} let "int++" done int=1 while(( $int<=$length )) do addr=${sshAddr[$int-1]} curEnv=${envs[$int-1]} echo $curEnv $addr sshAndSetup $addr sshFun $curEnv $addr let "int++" done ;; [nN][oO]|[nN]) echo "No" ;; *) echo "Invalid input" ;; esac git checkout ./game-server/config.json git checkout ./gm-server/config/env git checkout ./web-server/config/env git checkout ./web-server/config/sshHost.ts