上线代码、回滚代码

上线脚本

#!/bin/bash
FWDIR="$(cd `dirname "${BASH_SOURCE-$0}"`; pwd)"
bin=`dirname "$0"`
bin=`cd "$bin"; pwd`

now=`date "+%Y%m%d_%H%M%S"`

tag_release=di.release.${now}
repo_url=git@git.beijing.com:bdp-server/bdp-di.git

echo -e "\033[32m=====>  build release tag\033[0m"
git clone $repo_url $tag_release

cd $tag_release

#上线分支,如果不传参则上线master
[[ $# -eq 1 ]] && git checkout di_$1

git tag -a ${tag_release} -m "${tag_release} tagged from branch master"
git push origin ${tag_release}
# 提取版本信息
commiter=$(git for-each-ref --format="%(committername)" refs/heads)
release_note=$(git for-each-ref --format="%(committername)@%(refname:short) [%(committerdate:short)] %(contents)" refs/heads)
rm -rf .git

echo -e "\033[32m=====>  stop the old service...\033[0m"
cd $bin/service/bin
bash di.sh stop

echo -e "\033[32m=====>  start new service...\033[0m"
cd $bin
rm -rf service
ln -s ${tag_release} service
cd $bin/service/bin
bash di.sh start

# 发送上线日志邮件
echo -e "${tag_release} 版本上线说明(线上环境)\n\
==================================\n\
版本摘要:${release_note} \
\n上线说明:\n\n1. " > $FWDIR/note.tmp

vi $FWDIR/note.tmp +
mail -s 【BDP-DI上线日志】${tag_release} bdpteam@beijing.com < $FWDIR/note.tmp
rm $FWDIR/note.tmp

回滚脚本


#!/bin/bash

bin=`dirname "$0"`
bin=`cd "$bin"; pwd`

[[ $# -eq 0 ]] && echo "Usage:$0 {version}" && exit 0

version="di.release.$1"

echo -e "\033[32m=====>  stop the old service...\033[0m"
cd $bin/service/bin
bash di.sh stop

echo -e "\033[32m=====>  start new service...\033[0m"
cd $bin
rm -rf service
ln -s ${version} service
cd $bin/service/bin
bash di.sh start

echo -e "\033[32m=====>  success to rollback to $version\033[0m"

#send mail
echo -e 'BDP-DI版本回滚(线上环境)\n'\
'==================================\n'\
'已回滚至版本:'${version} | \
mail -s 【BDP-DI回滚日志】bdpteam@beijing.com


转载于:https://my.oschina.net/yulongjiang/blog/469451

1. 上线前的备份工作: 按日期生成上线记录文件夹 文件结构目录和正式环境保持一致 备份你所涉及到的修改文件 2. 上线前的准备工作: 把你修改到的patch文件 到 PATCH_ROOT 目录中 文件结构目录和正式环境保持一致 3. 上线工作: diff -r -b 比较 备份环境 和 发布环境 文件差异; 再次确定修改是否正确 PATCH_ROOT 下的文件夹和文件 发布到正式环境 即可; 完成上线后,要检查系统功能是否正确。 4. 回滚工作: BAK_ROOT 下的文件夹和文件 回滚到正式环境 即可 ; 完成回滚后 要检查系统功能是否正确回滚。 5. shell脚本功能: === 参数配置 ===: #指定正式环境的路径 正式环境的文件 WEB_ROOT=/var/www/html echo ${WEB_ROOT} #指定发布环境的路径 发布环境的文件 PAT_ROOT=/home/chenlong/blog echo ${PAT_ROOT} #指定发布管理日志的路径 记录发布过程,完成文件备份和文件patch PUB_ROOT=/home/chenlong/Publish === 使用方法 ===: #./apply.sh blog /home/chenlong/patch_sh/list20100520.txt 例如 -bash-3.2$ ./apply.sh blog /home/chenlong/patch_sh/list20100520.txt /var/www/html /home/chenlong/blog /home/chenlong/Publish blog /home/chenlong/patch_sh/list20100520.txt /home/chenlong/patch_sh === cmd === :/home/chenlong/patch_sh/apply_cp.sh /var/www/html/wp-includes/js/common.js /home/chenlong/Publish/blog/2010-05-21/bak /bin/cp /var/www/html/wp-includes/js/common.js /home/chenlong/Publish/blog/2010-05-21/bak/var/www/html/wp-includes/js/common.js === cmd === :/home/chenlong/patch_sh/apply_cp.sh /var/www/html/upload_editor.php /home/chenlong/Publish/blog/2010-05-21/bak /bin/cp /var/www/html/upload_editor.php /home/chenlong/Publish/blog/2010-05-21/bak/var/www/html/upload_editor.php === cmd === :/home/chenlong/patch_sh/apply_cp.sh /var/www/html/BM/Tpl/default/Admin/Img/index.php /home/chenlong/Publish/blog/2010-05-21/bak /bin/cp /var/www/html/BM/Tpl/default/Admin/Img/index.php /home/chenlong/Publish/blog/2010-05-21/bak/var/www/html/BM/Tpl/default/Admin/Img/index.php === cmd === :/home/chenlong/patch_sh/apply_cp.sh /home/chenlong/blog/wp-includes/js/common.js /home/chenlong/Publish/blog/2010-05-21/patch /bin/cp /home/chenlong/blog/wp-includes/js/common.js /home/chenlong/Publish/blog/2010-05-21/patch/home/chenlong/blog/wp-includes/js/common.js === cmd === :/home/chenlong/patch_sh/apply_cp.sh /home/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值