From 38c7c9496a30f2d7aad3ed0f812ed4fe1950f86f Mon Sep 17 00:00:00 2001 From: "PC-202302260912\\Administrator" <1769111741@qq.com> Date: Mon, 24 Jul 2023 14:00:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=80=BB=E8=84=9A=E6=9C=AC=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- update.sh | 266 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 256 insertions(+), 10 deletions(-) diff --git a/update.sh b/update.sh index 368f45a..4a2823f 100644 --- a/update.sh +++ b/update.sh @@ -1,17 +1,20 @@ #!/bin/bash # 定义ANSI颜色转义码 -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[0;33m' +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 "================================" + echo -e "欢迎使用${GREEN}戒灵更新脚本${NC}" + echo -e "1. ${YELLOW}游戏服更新${NC}" + echo -e "2. ${YELLOW}gm更新${NC}" + echo -e "3. ${YELLOW}登陆服更新${NC}" + echo -e "4. ${YELLOW}支付服更新${NC}" + echo -e "5. ${YELLOW}敏感词服更新${NC}" echo -e "0. ${RED}退出${NC}" } @@ -20,16 +23,28 @@ handle_input() { read -p "请输入选项编号: " choice case $choice in 1) - echo -e "${YELLOW}您选择了选项一${NC}" # 在这里编写选项一的代码 + game ;; 2) - echo -e "${YELLOW}您选择了选项二${NC}" + echo -e "${YELLOW}开始更新gm服${NC}" # 在这里编写选项二的代码 + gm ;; 3) - echo -e "${YELLOW}您选择了选项三${NC}" + echo -e "${YELLOW}开始更新登陆服${NC}" # 在这里编写选项三的代码 + login + ;; + 4) + echo -e "${YELLOW}开始更新支付服${NC}" + # 在这里编写选项四的代码 + pay + ;; + 5) + echo -e "${YELLOW}开始更新敏感词服${NC}" + # 在这里编写选项五的代码 + mingan ;; 0) echo -e "${RED}谢谢使用,再见!${NC}" @@ -42,6 +57,237 @@ handle_input() { esac } +#游戏服更新 +game(){ + echo -e "================================" + echo -e "开始更新${GREEN}游戏服${NC}" + echo -e "1. ${YELLOW}打包${NC}" + echo -e "2. ${YELLOW}单服更新发送${NC}" + echo -e "3. ${YELLOW}渠道更新发送${NC}" + echo -e "4. ${YELLOW}查看所有项目名称${NC}" + echo -e "5. ${YELLOW}查看渠道文件名称${NC}" + echo -e "0. ${GREEN}返回主菜单${NC}" + read -p "请输入选项编号: " choice + case $choice in + 1) + echo -e "${YELLOW}打包${NC}" + read -p "请输入项目地址: " project + read -p "请输入包名(不需要带文件后缀): " package + echo -e "开始打包 项目:$project, 包名:$package" + bashh update_game.sh $project $package + game + ;; + 2) + echo -e "${YELLOW}单独发送${NC}" + read -p "请输入包名(不需要带文件后缀): " package + read -p "请输入游戏服ip: " ip + echo -e "开始发送 包名:$package, ip:$ip" + send_one_ip $project $package + game + ;; + 3) + echo -e "${YELLOW}渠道发送${NC}" + read -p "请输入包名(不需要带文件后缀): " package + read -p "请输入文件名称(不需要带文件后缀): " iptxt + echo -e "开始发送 包名:$package, 渠道:$iptxt" + send_many_ip $package $iptxt + game + ;; + 4) + echo -e "${YELLOW}查看所有项目名称${NC}" + ll ./txt/ + game + ;; + 5) + echo -e "${YELLOW}查看渠道文件名称${NC}" + ll ../project/ + game + ;; + 0) + show_menu + handle_input + ;; + *) + echo -e "${RED}无效的选项,请重新输入${NC}" + game + ;; + esac +} + +# 源服务器上的tar压缩包路径 +source_tar="/data/update/package/" +# 目标服务器上的目标目录路径 +destination_dir="/data/" +#单服发送 +send_one_ip(){ + package=${1}.tar.gz + ip=${2} + # 单服务器更新 + 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 " +} +#多服发送 +send_many_ip(){ + package=${1}.tar.gz + iptxt=${2}.txt + for i in `awk '{print $2}' /data/update/script/$iptxt` + 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 +} + +#gm更新 +gm(){ + echo -e "================================" + echo -e "开始更新${GREEN}gm服${NC}" + echo -e "1. ${YELLOW}单渠道更新${NC}" + echo -e "2. ${YELLOW}多渠道更新${NC}" + echo -e "3. ${YELLOW}查看所有渠道${NC}" + echo -e "0. ${GREEN}返回主菜单${NC}" + read -p "请输入选项编号: " choice + case $choice in + 1) + echo -e "${YELLOW}单渠道更新${NC}" + read -p "请输入项目地址: " project + read -p "请输入gm服ip: " ip + echo -e "开始更新gm ip:$ip" + bash update_gm.sh $project $ip + gm + ;; + 2) + echo -e "${YELLOW}多渠道更新${NC}" + read -p "请输入项目地址: " project + echo -e "开始更新gm" + bash update_gm.sh $project + gm + ;; + 3) + echo -e "${YELLOW}查看所有项目名称${NC}" + cat txt/gm_ip.txt + gm + ;; + 0) + show_menu + handle_input + ;; + *) + echo -e "${RED}无效的选项,请重新输入${NC}" + gm + ;; + esac +} + +#登陆 ssh $i "sh /data/jieling/gm/gm_restart.sh" +login(){ + echo -e "================================" + echo -e "开始更新${GREEN}登陆服${NC}" + echo -e "1. ${YELLOW}更新登陆服代码${NC}" + echo -e "2. ${YELLOW}重启登陆服${NC}" + echo -e "0. ${GREEN}返回主菜单${NC}" + read -p "请输入选项编号: " choice + case $choice in + 1) + echo -e "${YELLOW}登陆服更新${NC}" + read -p "请输入登陆服ip: " ip + echo -e "开始更新登陆服 ip:$ip" + bash update_login.sh $ip + login + ;; + 2) + echo -e "${YELLOW}登陆服重启${NC}" + read -p "请输入登陆服ip: " ip + echo -e "开始重启登陆服 ip:$ip" + ssh $ip "bash /usr/local/apache-tomcat-7.0.79/bin/shutdown.sh" + sleep 3 + ssh $ip "bash /usr/local/apache-tomcat-7.0.79/bin/startup.sh" + login + ;; + 0) + show_menu + handle_input + ;; + *) + echo -e "${RED}无效的选项,请重新输入${NC}" + login + ;; + esac +} + +#支付 +pay(){ + echo -e "================================" + echo -e "开始更新${GREEN}支付服${NC}" + echo -e "1. ${YELLOW}更新支付服代码${NC}" + echo -e "1. ${YELLOW}重启支付服${NC}" + echo -e "0. ${GREEN}返回主菜单${NC}" + read -p "请输入选项编号: " choice + case $choice in + 1) + echo -e "${YELLOW}支付服更新${NC}" + read -p "请输入支付服ip: " ip + echo -e "开始更新支付服 ip:$ip" + bash update_delivery.sh $ip + pay + ;; + 2) + echo -e "${YELLOW}支付服重启${NC}" + read -p "请输入支付服ip: " ip + echo -e "开始重启支付服 ip:$ip" + ssh $ip "bash /data/jieling/delivery-server/pay_restart.sh" + login + ;; + 0) + show_menu + handle_input + ;; + *) + echo -e "${RED}无效的选项,请重新输入${NC}" + pay + ;; + esac +} + +#敏感词 +mingan(){ + echo -e "================================" + echo -e "开始更新${GREEN}敏感词服${NC}" + echo -e "1. ${YELLOW}更新敏感词服代码${NC}" + echo -e "2. ${YELLOW}重启敏感词服${NC}" + echo -e "0. ${GREEN}返回主菜单${NC}" + read -p "请输入选项编号: " choice + case $choice in + 1) + echo -e "${YELLOW}敏感词服更新${NC}" + read -p "请输入敏感词服ip: " ip + echo -e "开始更新敏感词服 ip:$ip" + bash update_sensitive.sh $ip + mingan + ;; + 2) + echo -e "${YELLOW}敏感词服重启${NC}" + read -p "请输入敏感词服ip: " ip + echo -e "开始重启敏感词服 ip:$ip" + ssh $ip "bash /data/jieling/sensitiveWordFilter/bin/mingan_reboot.sh" + login + ;; + 0) + show_menu + handle_input + ;; + *) + echo -e "${RED}无效的选项,请重新输入${NC}" + mingan + ;; + esac +} + # 主循环,展示菜单并处理用户输入 while true; do show_menu