将测试环境代码推到预生产环境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、涉及到公司的一些产品东西,所以把里面的文字替换了一些,但大体上还是没有什么变化的