更新脚本

main
PC-202302260912\Administrator 2023-07-21 18:52:07 +08:00
commit fa4fb723dc
11 changed files with 467 additions and 0 deletions

28
check_json.py 100644
View File

@ -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)

118
hotfix_game.sh 100644
View File

@ -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

33
send_package.sh 100644
View File

@ -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

0
txt/gm_ip.txt 100644
View File

View File

49
update.sh 100644
View File

@ -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

38
update_delivery.sh 100644
View File

@ -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

104
update_game.sh 100644
View File

@ -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

61
update_gm.sh 100644
View File

@ -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

23
update_login.sh 100644
View File

@ -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

View File

@ -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