From fa4fb723dc3b8cf7beb835fac72c296dee54eaaf Mon Sep 17 00:00:00 2001 From: "PC-202302260912\\Administrator" <1769111741@qq.com> Date: Fri, 21 Jul 2023 18:52:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- check_json.py | 28 +++++++++++ hotfix_game.sh | 118 ++++++++++++++++++++++++++++++++++++++++++++ send_package.sh | 33 +++++++++++++ txt/gm_ip.txt | 0 txt/server_ip.txt | 0 update.sh | 49 ++++++++++++++++++ update_delivery.sh | 38 ++++++++++++++ update_game.sh | 104 ++++++++++++++++++++++++++++++++++++++ update_gm.sh | 61 +++++++++++++++++++++++ update_login.sh | 23 +++++++++ update_sensitive.sh | 13 +++++ 11 files changed, 467 insertions(+) create mode 100644 check_json.py create mode 100644 hotfix_game.sh create mode 100644 send_package.sh create mode 100644 txt/gm_ip.txt create mode 100644 txt/server_ip.txt create mode 100644 update.sh create mode 100644 update_delivery.sh create mode 100644 update_game.sh create mode 100644 update_gm.sh create mode 100644 update_login.sh create mode 100644 update_sensitive.sh diff --git a/check_json.py b/check_json.py new file mode 100644 index 0000000..e874e75 --- /dev/null +++ b/check_json.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +######################################################################### +# File Name: check_json.py +# Created on : 2019-04-18 10:43:28 +# Author: Wu Kang +# Last Modified: 2019-04-18 10:55:38 +# Description: +######################################################################### +import json +import sys + + +file=sys.argv[1] + +def CheckJson(file): + try: + with open(file, 'r') as f: + load_dict = json.load(f) + except: + print("{} 非json文件!".format(file)) + sys.exit(1) + else: + sys.exit(0) + +CheckJson(file) + diff --git a/hotfix_game.sh b/hotfix_game.sh new file mode 100644 index 0000000..3514c54 --- /dev/null +++ b/hotfix_game.sh @@ -0,0 +1,118 @@ +#!/bin/bash + +######################################################################### +# File Name: hotfix.sh +# Created on: 2019-07-15 16:31:18 +# Author: Wu Kang +# Last Modified: 2021-09-02 19:09:43 +# Description: +######################################################################### +branch=$1 +package=$2 +packages=${package}.tar.gz +usage(){ + echo -e "\033[32mUsage: $0 {branch}\033[0m" + echo "branch has { master | online1.0 | project0.9 | project0.92}" + exit 7; +} + +if [ ! $branch ];then + usage +fi + +BASE_DIR=/data/update/project/${branch} +echo "${BASE_DIR}" + +if [ ! -d $BASE_DIR ];then + echo -e "\033[31myour input branch not exist\033[0m" + echo -e "\033[31mplease check your input branch!!!\033[0m" + echo -e "\033[31mgood bye...\033[0m" + exit 7 +fi + +cd ${BASE_DIR}/miduo_server +git branch +git pull + +#校验文件 +/data/update/script/check_json.py ${BASE_DIR}/miduo_server/conf/hotfix.json || exit +/data/update/script/check_json.py ${BASE_DIR}/miduo_server/conf/c_database_version.json || exit + +cd ${BASE_DIR}/miduo_protocol +git branch +git pull + +#protobuf +cd ${BASE_DIR}/miduo_protocol +rm -rf ./protobuf_temp +mkdir ./protobuf_temp +find ./protos -name "*.proto" -type f|xargs -i protoc --proto_path=./protos --java_out=./protobuf_temp {} +rm -rf ${BASE_DIR}/miduo_server/gamecommon/src/main/java/rpc/global/* +rm -rf ${BASE_DIR}/miduo_server/gamecommon/src/main/java/rpc/protocols/* +rm -rf ${BASE_DIR}/miduo_server/gamecommon/src/main/java/rpc/world/* +yes|cp -r ./protobuf_temp/rpc/global ${BASE_DIR}/miduo_server/gamecommon/src/main/java/rpc/global +yes|cp -r ./protobuf_temp/rpc/protocols ${BASE_DIR}/miduo_server/gamecommon/src/main/java/rpc/protocols +yes|cp -r ./protobuf_temp/rpc/world ${BASE_DIR}/miduo_server/gamecommon/src/main/java/rpc/world + + +#gradlew build +cd ${BASE_DIR}/miduo_server +echo "gradlew clean..." +./gradlew clean +echo "gradlew build..." +./gradlew build +if [ $? != '0' ];then + echo "build error... please check your code !!!" + exit 7 +fi +#生成jar +echo "gradlew jar..." +./gradlew jar +echo "gradlew copyJars..." +./gradlew copyJars + + +cd ${BASE_DIR}/data_excel +svn up +cd ${BASE_DIR}/execl_to_txt +java -Dfile.encoding=UTF-8 -Djava.ext.dirs=./lib ExcelUtils + +#热更地址 +my_dir = ${BASE_DIR}/hotfix/conf +if [ ! -d "$my_dir" ]; then + echo "创建文件夹" + mkdir -p ${my_dir}/server + mkdir -p ${my_dir}/hotswap +fi + +rm -rf ${BASE_DIR}/hotfix/conf/*.json +yes|cp -r ${BASE_DIR}/miduo_server/conf/c_database_version.json ${BASE_DIR}/hotfix/conf +yes|cp -r ${BASE_DIR}/miduo_server/conf/hotfix.json ${BASE_DIR}/hotfix/conf + +cd ${BASE_DIR} +find hotfix/conf/ -type f -name "*.txt"|egrep -v "c_database_version|hotfix"|xargs rm -rf +find hotfix/conf/ -type f -name "*.class" |xargs rm -rf + +cat ${BASE_DIR}/miduo_server/conf/c_database_version.json |awk -F':' '/tables/{print $2}'|tr -d '"'|tr '|' '\n'|xargs -i find ${BASE_DIR}/miduo_server/conf/server -name "{}.txt"|xargs -i cp {} ${BASE_DIR}/hotfix/conf/server +cat ${BASE_DIR}/miduo_server/conf/hotfix.json |grep name|awk -F'"' '{print $4}'|xargs -i find ${BASE_DIR}/miduo_server/serverlogic/build -name "{}"|xargs -i cp {} ${BASE_DIR}/hotfix/conf/hotswap + +tree hotfix +echo "cat miduo_server/conf/c_database_version.json" +cat ${BASE_DIR}/miduo_server/conf/c_database_version.json +echo "cat miduo_server/conf/hotfix.json" +cat ${BASE_DIR}/miduo_server/conf/hotfix.json + +cd ${BASE_DIR}/hotfix +tar -czvf hotfix.tar.gz ./* +mv hotfix.tar.gz /data/update/package/${packages} +echo "打包${packages}完成" +#if [ ! -z ${ip} ];then +# rsync -arpzv ./jieling ${ip}:/data/jieling2/ +#fi +#if [ ! -z ${ip} ];then +# rsync -arpzv --exclude ".git" --exclude ".svn" --exclude ".sh" --exclude=application*.properties jieling/conf/ ${ip}:/data/${core}/conf/ +# if [ $? != '0' ];then +# echo "上传失败...请检查网络..." +# exit 7 +# fi +#fi diff --git a/send_package.sh b/send_package.sh new file mode 100644 index 0000000..763e4fe --- /dev/null +++ b/send_package.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +name=$1 +ip=$2 +package=${name}.tar.gz + +# 源服务器上的tar压缩包路径 +source_tar="/data/update/package/" + +# 目标服务器 +destination_server=txt/server_ip.txt + +# 目标服务器上的目标目录路径 +destination_dir="/data/" + +# 单服务器更新 +if [ ! -z $ip ];then + echo "正在处理服务器 $ip " + scp "$source_tar/$package" "$ip:$destination_dir" + ssh "$ip" "tar -zxvf $destination_dir/$package -C $destination_dir/jieling/server/" + ssh "$ip" "rm -rf $destination_dir/$package" + echo "处理完成服务器 $ip " +else +# 循环遍历源服务器列表 + for i in `awk '{print $2}' /data/update/script/$destination_server` + do + echo "正在处理服务器 $i " + scp "$source_tar/$package" "$i:$destination_dir" + ssh "$i" "tar -zxvf $destination_dir/$package -C $destination_dir/jieling/server/" + ssh "$i" "rm -rf $destination_dir/$package" + echo "处理完成服务器 $i " + done +fi diff --git a/txt/gm_ip.txt b/txt/gm_ip.txt new file mode 100644 index 0000000..e69de29 diff --git a/txt/server_ip.txt b/txt/server_ip.txt new file mode 100644 index 0000000..e69de29 diff --git a/update.sh b/update.sh new file mode 100644 index 0000000..368f45a --- /dev/null +++ b/update.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +# 定义ANSI颜色转义码 +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[0;33m' +NC='\033[0m' # 恢复默认颜色 + +# 定义函数,用于展示菜单选项 +show_menu() { + echo -e "欢迎使用${GREEN}交互式Shell脚本模板${NC}" + echo -e "1. ${YELLOW}选项一${NC}" + echo -e "2. ${YELLOW}选项二${NC}" + echo -e "3. ${YELLOW}选项三${NC}" + echo -e "0. ${RED}退出${NC}" +} + +# 定义函数,用于处理用户输入 +handle_input() { + read -p "请输入选项编号: " choice + case $choice in + 1) + echo -e "${YELLOW}您选择了选项一${NC}" + # 在这里编写选项一的代码 + ;; + 2) + echo -e "${YELLOW}您选择了选项二${NC}" + # 在这里编写选项二的代码 + ;; + 3) + echo -e "${YELLOW}您选择了选项三${NC}" + # 在这里编写选项三的代码 + ;; + 0) + echo -e "${RED}谢谢使用,再见!${NC}" + exit 0 + ;; + *) + echo -e "${RED}无效的选项,请重新输入${NC}" + handle_input + ;; + esac +} + +# 主循环,展示菜单并处理用户输入 +while true; do + show_menu + handle_input +done diff --git a/update_delivery.sh b/update_delivery.sh new file mode 100644 index 0000000..5dc69d0 --- /dev/null +++ b/update_delivery.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +######################################################################### +# File Name: update-delivery.sh +# Created on: 2019-09-11 16:21:57 +# Author: Wu Kang +# Last Modified: 2022-03-02 18:23:36 +# Description: +######################################################################### + +#/bin/bash +#by wk +. /etc/profile +ip=$1 +BASE_DIR="/data/update/project/miduo_pay" + +if [ ! -d ${BASE_DIR} ]; then + echo "your input ${branch} Branch does not exist!" + exit 7 +fi + +cd ${BASE_DIR}/ +git pull + + +#rm -rf ./thrift_temp +#mkdir ./thrift_temp +#find ./src/main/thrift/idl -name "*.thrift" -type f|xargs -i thrift -r -out thrift_temp --gen java {} +#mkdir -p ./src/main/java/com/jmfy/thrift/idl/ +#rm -rf ./src/main/java/com/jmfy/thrift/idl/* +#cp -rf ./thrift_temp/com/jmfy/thrift/idl/* ./src/main/java/com/jmfy/thrift/idl/ + +mvn clean package + + +if [ ! -z ${ip} ];then + scp ${BASE_DIR}/target/delivery-server-1.0-SNAPSHOT.jar ${ip}:/data/jieling/delivery-server/ +fi diff --git a/update_game.sh b/update_game.sh new file mode 100644 index 0000000..05d6784 --- /dev/null +++ b/update_game.sh @@ -0,0 +1,104 @@ +#!/bin/bash +######################################################################### +# File Name: b.sh +# Created on: 2018-06-28 17:01:15 +# Author: Wu Kang +# Last Modified: 2019-01-23 10:51:34 +# Description: +######################################################################### +. /etc/profile + +branch=$1 +package=$2 +packages=${package}.tar.gz +if [ ! $branch ];then + echo "branch is not exiting," + exit 7 +fi + +BASE_DIR=/data/update/project/${branch} + +if [ ! -d $BASE_DIR ];then + echo -e "\033[31myour input branch not exist\033[0m" + echo -e "\033[31mplease check your input branch!!!\033[0m" + echo -e "\033[31mgood bye...\033[0m" + exit 7 +fi + +cd ${BASE_DIR}/miduo_server +echo "当前分支是: `git branch`" +git pull + +cd ${BASE_DIR}/miduo_protocol +echo "当前分支是: `git branch`" +git pull + +#protobuf +rm -rf ./protobuf_temp +mkdir ./protobuf_temp +find ./protos -name "*.proto" -type f|xargs -i protoc --proto_path=./protos --java_out=./protobuf_temp {} +rm -rf ${BASE_DIR}/miduo_server/gamecommon/src/main/java/rpc/global/* +rm -rf ${BASE_DIR}/miduo_server/gamecommon/src/main/java/rpc/protocols/* +rm -rf ${BASE_DIR}/miduo_server/gamecommon/src/main/java/rpc/world/* +yes|cp -r ./protobuf_temp/rpc/global ${BASE_DIR}/miduo_server/gamecommon/src/main/java/rpc/global +yes|cp -r ./protobuf_temp/rpc/protocols ${BASE_DIR}/miduo_server/gamecommon/src/main/java/rpc/protocols +yes|cp -r ./protobuf_temp/rpc/world ${BASE_DIR}/miduo_server/gamecommon/src/main/java/rpc/world + +#gradlew build +cd ${BASE_DIR}/miduo_server +echo "gradlew clean..." +./gradlew clean +echo "gradlew build..." +./gradlew build +if [ $? != '0' ];then + echo "build error... please check your code !!!" + exit 7 +fi +#生成jar +echo "gradlew jar..." +./gradlew jar +echo "gradlew copyJars..." +./gradlew copyJars + +#svn update +cd ${BASE_DIR}/fighting +svn up + +cd ${BASE_DIR}/data_excel +#echo "当前分支是: `git branch`" +#git pull +svn up +cd ${BASE_DIR}/execl_to_txt +java -Dfile.encoding=UTF-8 -Djava.ext.dirs=./lib ExcelUtils + +rm -rf ${BASE_DIR}/miduo_server/release +rm -rf ${BASE_DIR}/miduo_server/jieling.tar.gz +mkdir -p ${BASE_DIR}/miduo_server/release/jieling/conf +mkdir -p ${BASE_DIR}/miduo_server/release/jieling/lib +mkdir -p ${BASE_DIR}/miduo_server/release/jieling/lib/serverlogiclib +mkdir -p ${BASE_DIR}/miduo_server/release/jieling/lib/matchserverlib +mkdir -p ${BASE_DIR}/miduo_server/release/jieling/lib/bloodyBattlelib + + +yes|cp -r ${BASE_DIR}/miduo_server/luafight/ ${BASE_DIR}/miduo_server/release/jieling/ +mv ${BASE_DIR}/miduo_server/serverlogic/lib/hotfix.jar ${BASE_DIR}/miduo_server/release/jieling/lib/ +yes|cp -r ${BASE_DIR}/miduo_server/serverlogic/lib/*.jar ${BASE_DIR}/miduo_server/release/jieling/lib/serverlogiclib/ +yes|cp -r ${BASE_DIR}/miduo_server/serverlogic/build/libs/*.jar ${BASE_DIR}/miduo_server/release/jieling/lib/ + +yes|cp -r ${BASE_DIR}/miduo_server/conf/* ${BASE_DIR}/miduo_server/release/jieling/conf/ +yes|cp -r ${BASE_DIR}/fighting/Modules/ ${BASE_DIR}/miduo_server/release/jieling/luafight/ +yes|cp -r ${BASE_DIR}/fighting/BattleMain.lua ${BASE_DIR}/miduo_server/release/jieling/luafight/ + +cd ${BASE_DIR}/miduo_server/release/jieling/ + +tar -czvf jieling.tar.gz --exclude=jieling/bin ./* +mv jieling.tar.gz /data/update/package/${packages} +echo "打包${packages}完成" +#cd /data/update/package/${file} +#echo "删除分发服务器旧包" +#ssh 82.157.34.193 rm -rf /etc/ansible/roles/send_lib/files/*.tar.gz +#echo "开始拷贝${packages}到分发服务器 !" +#scp ${packages} root@82.157.34.193:/etc/ansible/roles/send_lib/files/ +##echo "拷贝${packages}到分发服务器完成 !" +#scp ${packages} root@159.75.211.94:/data/op/jl_pack/${file}/ +#tar -xvf jieling.tar.gz -C /data/jieling/scripts/release/patch diff --git a/update_gm.sh b/update_gm.sh new file mode 100644 index 0000000..d78f605 --- /dev/null +++ b/update_gm.sh @@ -0,0 +1,61 @@ +#!/bin/bash + +######################################################################### +# File Name: jl_gm_update.sh +# Created on: 2019-09-04 10:54:43 +# Author: Wu Kang +# Last Modified: 2022-07-13 16:48:25 +# Description: +######################################################################### +. /etc/profile +BASE_DIR="/data/update/project/miduo_gm" + +#表文件地址,不同渠道用表不一样 +table=$1 +TABLE_DIR="/data/update/project/${table}" + +#更新服务器地址,可以为空,表示更新全部gm +ip=$2 +file=txt/gm_ip.txt + + +#excel +cd ${TABLE_DIR}/data_excel/ +svn up +cd ${TABLE_DIR}/execl_to_txt/ +java -Dfile.encoding=UTF-8 -Djava.ext.dirs=./lib ExcelUtils + +#java +cd ${BASE_DIR}/ +git pull + +mvn clean package + +#file +#\cp -rf ${BASE_DIR}/conf/server/ItemConfig.txt ${BASE_DIR}/conf/jsonconf/ +#\cp -rf ${BASE_DIR}/conf/server/RechargeCommodityConfig.txt ${BASE_DIR}/conf/jsonconf/ + +if [ ! -z ${ip} ];then + echo "开始更新 ${ip} " + scp ${TABLE_DIR}/miduo_server/conf/server/ItemConfig.txt ${ip}:/data/jieling/gm/config/jsonconf/ + scp ${TABLE_DIR}/miduo_server/conf/server/RechargeCommodityConfig.txt ${ip}:/data/jieling/gm/config/jsonconf/ + scp ${BASE_DIR}/conf/jsonconf/Reason.txt ${ip}:/data/jieling/gm/config/jsonconf/ + scp ${BASE_DIR}/target/gm_tw_admin-1.0-SNAPSHOT.jar ${ip}:/data/jieling/gm/gm_tw_admin-1.0-SNAPSHOT.jar + + echo "开始重启 ${ip} 服务器 " + ssh ${ip} "sh /data/jieling/gm/gm_restart.sh" +#fi + +else + for i in `awk '{print $2}' /data/jieling/scripts/$file` + do + echo "开始更新 $i" + scp ${TABLE_DIR}/miduo_server/conf/server/ItemConfig.txt $i:/data/jieling/gm/config/jsonconf/ + scp ${TABLE_DIR}/miduo_server/conf/server/RechargeCommodityConfig.txt $i:/data/jieling/gm/config/jsonconf/ + scp ${BASE_DIR}/conf/jsonconf/Reason.txt $i:/data/jieling/gm/config/jsonconf/ + scp ${BASE_DIR}/target/gm_tw_admin-1.0-SNAPSHOT.jar $i:/data/jieling/gm/gm_tw_admin-1.0-SNAPSHOT.jar + + echo "开始重启 $i" + ssh $i "sh /data/jieling/gm/gm_restart.sh" + done +fi diff --git a/update_login.sh b/update_login.sh new file mode 100644 index 0000000..ccca8ff --- /dev/null +++ b/update_login.sh @@ -0,0 +1,23 @@ +#!/bin/bash +. /etc/profile +######################################################################### +# File Name: build.sh +# Created on: 2019-08-15 11:56:54 +# Author: Wu Kang +# Last Modified: 2023-05-12 15:59:45 +# Description: +######################################################################### +ip=$1 +usage(){ + echo -e "\033[32mUsage: $0 {ip} \033[0m" + exit 7; +} +cd /data/update/project/miduo_login/ +git pull +./gradlew clean +./gradlew build +./gradlew jar + +if [ ! -z ${ip} ];then + scp build/libs/loginserver-1.0-SNAPSHOT.war ${ip}:/usr/local/apache-tomcat-7.0.79/webapps/jl_loginserver.war +fi diff --git a/update_sensitive.sh b/update_sensitive.sh new file mode 100644 index 0000000..d900376 --- /dev/null +++ b/update_sensitive.sh @@ -0,0 +1,13 @@ +#!/bin/bash +. /etc/profile +BASE_DIR="/data/update/project/sensitiveWordFilter" +ip=$1 + +#java +cd ${BASE_DIR}/ +#git checkout $branch +git pull + +./gradlew build + +scp ${BASE_DIR}/build/libs/SensitivewordFilter-1.0-SNAPSHOT.jar ${ip}:/data/jieling/sensitiveWordFilter/lib/SensitivewordFilter-1.0-SNAPSHOT.jar