前端部署脚本样例

适应场景:前端包内含有内层文件夹如dataserver-web;

参数要求:SERVICE_PATH为前端组件的上层目录,如…/web,不要具体到每个前端组件的文件夹。SERVICE_NAME为web下每个前端包解压后的子文件夹名,如dataserver-web;

内容说明:脚本中选取的包类型为zip,如为其他类型如tar.gz,请修改获取报名以及包解压部分命令。

#!/bin/bash
CURR_DIR=$(pwd)
#获取分发到节点的包名
PACKAGE_NAME=$(find . -name "*.zip"|awk -F'/' '{print $NF}')
echo "即将部署$PACKAGE_NAME"
#查看部署前部署路径下的内容
ls ${SERVICE_PATH} -l
#备份原文件
backup_service() {
echo "开始执行备份操作"
if [ ! -d $BACKUP_PATH/history/ ];then
mkdir -p $BACKUP_PATH/history/
fi
echo "如果backup中存在前一次备份,将前一次备份移动到history中..."
if [ -d $BACKUP_PATH/${SERVICE_NAME}* ];then
/bin/mv $BACKUP_PATH/${SERVICE_NAME}* $BACKUP_PATH/history/
A=`echo $?`
if [ $A == 0 ];then
echo "${SERVICE_NAME} 前一次备份移动成功"
else
echo "${SERVICE_NAME} 前一次备份移动失败"
exit 2
fi
else
echo "不存在前一次备份,不处理"
fi
echo -e "备份本次上线前部署目录中的内容..."
if [ -d ${SERVICE_PATH}/${SERVICE_NAME} ];then
mkdir -p $BACKUP_PATH/${SERVICE_NAME}.`date +%y%m%d_%H%M%S`
cd ${SERVICE_PATH}
/bin/mv ${SERVICE_PATH}/${SERVICE_NAME}* $BACKUP_PATH/${SERVICE_NAME}*/
B=`echo $?`
if [ $B == 0 ];then
echo "${SERVICE_NAME} 本次上线前数据备份成功"
else
echo "${SERVICE_NAME} 本次上线前数据备份失败"
exit 2
fi
else
echo "部署路径${SERVICE_PATH}中不存在$SERVICE_NAME,不做备份"
fi
}
#部署方法
deploy_service() {
cd $CURR_DIR
echo "拷贝包到部署路径并解压"
cp  ${PACKAGE_NAME}  ${SERVICE_PATH}
cd ${SERVICE_PATH}
unzip -o ${PACKAGE_NAME}  >/dev/null  2>&1
#tar -zxvf  ${PACKAGE_NAME}  >/dev/null  2>&1
sleep 2
C=`echo $?`
if [ $C == 0 ];then
    echo "${SERVICE_NAME} 部署成功"
else
    echo "${SERVICE_NAME} 部署失败"
    exit 2
fi
#echo "开始重启ngnix,请等待~"
#${NGNIX_PATH}/nginx -s reload > /dev/null 2>&1 &
}
#部署前的一些检查:部署目录、备份目录是否赋值、是否存在
echo "确认部署目录存在"
if [ ! ${SERVICE_PATH} ];then
echo "SERVICE_PATH此参数未设置,请检查!"
exit 1
elif [ ! ${BACKUP_PATH} ];then
echo "BACKUP_PATH此参数未设置,请检查!"
exit 1
elif [ ! -d ${SERVICE_PATH} ];then
echo "部署目录不存在,初次部署,自动创建该目录!"
mkdir -p ${SERVICE_PATH}
deploy_service
else
backup_service
deploy_service
fi
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值