将测试环境代码推到预生产环境shell脚本

将测试环境代码推到预生产环境shell脚本

#!/bin/bash

#加载系统函数库
. /etc/init.d/functions

#目录
version=`date +%Y-%m-%d`
bak="/backup/$version"  #测试完成后,将代码打包备份的路径
src="/alidata/www"     #预生产环境代码的目录
dblink="/backup/dblink"   #配置数据库连接的文件,因为测试环境用的是测试库,预生产环境需要配置线上的数据库和api,所以在更新代码的时候需要将测试环境的数据库连接文件替换掉

#更新代码
Update_bj(){
    echo "================更新XX代码====================="
    rm -rf $src/bjadmin
    scp -r root@192.168.88.136:/www/bjadmin/bjadmin $src/bjadmin
    rm -rf $src/bjadmin/.svn
    chown www. $src/bjadmin/runtime -R
    chmod 777 $src/bjadmin/public -R
    echo "=================更新完成========================"
sleep 5
}
Update_bjapi(){
    echo "===============更新XXapi代码===================="
    rm -rf $src/bj20-https
    scp -r root@192.168.88.136:/www/bjapi $src/bj20-https
    rm -rf $src/bj20-https/.svn
    chown www. $src/bj20-https/Runtime -R
    echo "=================更新完成========================"
    sleep 5
}
Update_jjadmin(){
echo "================更新jj后台代码=================="
    rm -rf $src/jjadmin22
    scp -r root@192.168.88.136:/www/jj22/admin/admin $src/jjadmin22
    rm -rf $src/jjadmin22/.svn
    chown www. $src/jjadmin22/runtime -R
    chmod 777 $src/jjadmin22/public -R
    echo "=================更新完成========================="
    sleep 5
}

Update_h5(){
echo "=================更新jjh5代码==================="
    rm -rf $src/h5
    scp -r root@192.168.88.136:/www/jj22/h5/h5 $src/h5
    rm -rf $src/h5/.svn
    chmod 777 $src/h5/Public -R
    echo "=================更新完成========================="
    sleep 5
}
Update_api(){
    echo "=================更新jjapi代码==================="
    rm -rf $src/jj22-https
    scp -r root@192.168.88.136:/www/jj22/api $src/jj22-https
    echo "=================更新完成========================="
    sleep 5
}
Update_api20(){
    echo "================更新jjapi20代码=================="
    rm -rf $src/jj-http
    scp -r root@192.168.88.136:/www/jj22/api20 $src/jj-http
    echo "=================更新完成========================="
    sleep 5
}


#自定义备份代码
BACKUP_bj(){
    if [ -e $bak/bjadmin_${version}.tgz ];then
        echo "bjadmin_${version}.tgz 已经存在"
    else
        rm -rf $src/bjadmin/runtime/*
        cd $src
        tar -czf $bak/bjadmin_${version}.tgz bjadmin
        [ $? -eq 0 ] && action "备份XX后台代码完成" /bin/true
        sleep 3
    fi
}
BACKUP_bjapi(){
    if [ -e $bak/bj20-https_${version}.tgz ];then
        echo "$bak/bj20-https_${version}.tgz 已经存在"
    else
        rm -rf $src/bj20-https/Runtime/*
        cd $src
        tar -czf $bak/bj20-https_${version}.tgz bj20-https
        [ $? -eq 0 ] && action "备份XXapi代码完成" /bin/true
        sleep 3
    fi
}
BACKUP_jjadmin(){
    if [ -e $bak/jjadmin22_${version}.tgz ];then
        echo "$bak/jjadmin22_${version}.tgz 已经存在"
    else
        rm -rf $src/jjadmin22/runtime/*
        cd $src
        tar -czf $bak/jjadmin22_${version}.tgz jjadmin22
        [ $? -eq 0 ] && action  "备份jj后台代码完成" /bin/true
        sleep 3
    fi
}
BACKUP_h5(){
    if [ -e $bak/h5_${version}.tgz ];then
        echo "$bak/h5_${version}.tgz 已经存在"
    else
        cd $src
        tar -czf $bak/h5_${version}.tgz h5
        [ $? -eq 0 ] && action "备份jjh5代码完成" /bin/true
        sleep 3
    fi
}
BACKUP_api(){
    if [ -e $bak/jj22-https_${version}.tgz ];then
        echo "$bak/jj22-https_${version}.tgz 已经存在"
    else
        rm -rf $src/jj22-https/Runtime/*
        cd $src
        tar -czf $bak/jj22-https_${version}.tgz jj22-https
        [ $? -eq 0 ] && action "备份jjapi代码完成" /bin/true
        sleep 3
    fi
}
BACKUP_api20(){
    if [ -e $bak/jj-http_${version}.tgz ];then
        echo "$bak/jj-http_${version}.tgz 已经存在"
    else
        rm -rf $src/jj-http/Runtime/*
        cd $src
        tar -czf $bak/jj-http_${version}.tgz jj-http
        [ $? -eq 0 ] && action "备份jjapi20代码完成" /bin/true
        sleep 3
    fi
}

#自定义更新代码
menu1(){
while true
do
clear
cat << EOF
----------------------------------------
|****Please Enter Your Choice:[0-6]****|
----------------------------------------
(0) 返回上一级菜单
(1) 更新XX后台代码
(2) 更新XXapi代码
(3) 更新jj后台代码
(4) 更新jjh5代码
(5) 更新jjapi代码
(6) 更新jjapi20代码
EOF
read -p "Please enter your Choice[0-6]: " input1
case "$input1" in
0)
clear
break
;;
1)
Update_bj
;;
2)
Update_bjapi
;;
3)
Update_jjadmin
;;
4)
Update_h5
;;
5)
Update_api
;;
6)
Update_api20
;;
*) 
echo "----------------------------------"
echo "|          Warning!!!            |"
echo "|   Please Enter Right Numbers!   |"
echo "----------------------------------"
clear
esac
done
}

#自定义备份代码
menu2(){
while true
do

#备份代码的目录
if [ ! -d $bak ];then
    mkdir -p $bak
fi
clear
cat << EOF
----------------------------------------
|****Please Enter Your Choice:[0-6]****|
----------------------------------------
(0) 返回上一级菜单
(1) 备份XX后台代码
(2) 备份XXapi代码
(3) 备份jj后台代码
(4) 备份jjh5代码
(5) 备份jjapi代码
(6) 备份jjapi20代码
EOF
read -p "Please enter your Choice[0-6]: " input2
case "$input2" in
0)
clear
break
;;
1)
BACKUP_bj
;;
2)
BACKUP_bjapi
;;
3)
BACKUP_jjadmin
;;
4)
BACKUP_h5
;;
5)
BACKUP_api
;;
6)
BACKUP_api20
;;
*) 
echo "----------------------------------"
echo "|          Warning!!!            |"
echo "|   Please Enter Right Numbers!   |"
echo "----------------------------------"
clear
esac
done
}


#初始化首先运行
#menu
while true
do
clear
cat << EOF
|-----------System Infomation-----------

----------------------------------------
|****Please Enter Your Choice:[1-5]****|
----------------------------------------
(1) 一键更新代码
(2) 自定义更新代码
(3) 一键备份
(4) 自定义备份
(5) 退出
EOF


#choice
read -p "Please enter your choice[0-5]: " input1
case "$input1" in
1) 
Update_bj
Update_bjapi
Update_jjadmin
Update_h5
Update_api
Update_api20
;;
2)
menu1
;;
3)
BACKUP_bj
BACKUP_bjapi
BACKUP_jjadmin
BACKUP_h5
BACKUP_api
BACKUP_api20
;;
4)
menu2
;;
5) 
clear
break
;;
*)   
echo "----------------------------------"
echo "|          Warning!!!            |"
echo "|   Please Enter Right Numbers!   |"
echo "----------------------------------"
clear
esac
done

备注:
1、在更新代码的时候,此脚本我没有写,所以后期用的时候,需要自己加上
2、有些人喜欢用rsync,其实rsync和scp的效果我感觉差不多,我这边配置的密钥对,通过内网传输,速度也是很快的
3、涉及到公司的一些产品东西,所以把里面的文字替换了一些,但大体上还是没有什么变化的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值