自动化部署的shell脚本

来源:互联网 发布:hololens软件开发环境 编辑:程序博客网 时间:2024/06/07 03:17

这个shell脚本为线上代码部署的脚本,此脚本适用于小公司。而大公司会有专门的一套自动化部署的程序,比如使用jenkins部署,这个是比较常见的。

#!/bin/bash#首先在code里面执行下面命令#git checkout git@github.com:<username>/demo.gitCDATE=$(date "+%Y-%m-%d")CTIME=$(date "+%Y-%m-%d-%H-%M")#SHELLCODE_DIR="/deploy/code/"CONFIG_DIR="/deploy/config/"TAR_DIR="/deploy/tar/"TMP_DIR="/deploy/tmp/"usage(){    echo $"usage $0 [deploy | rollback-list | rollback-pro version]"}#获取代码,并拷贝到临时目录下git_pro(){    echo "begin git pull"    cd $CODE_DIR && git pull    API_VERL=$(git show | grep commit | cut -d" " -f2)  #git show 为显示各种类型的对象    API_VER=$(echo ${API_VERL:0:6})    cp -a "$CODE_DIR" $TMP_DIR}#添加配置文件config_pro(){    echo "add pro config"    /bin/cp "$CONFIG_DIR/*" $TMP_DIR/demo/    TAR_VER="${API_VER}"-"{$CTIME}"     cd $TMP_DIR && /bin/mv demo pro_demo_"$TAR_VER"}#打包代码tar_pro(){    echo "tar pro"    cd $TMP_DIR && tar -czf pro_demo_"$TAR_VER".tar.gz pro_demo_"$TAR_VER"}#将打包好的代码上传到正式环境的tmp目录scp_pro(){    /bin/cp $TMP_DIR/pro_demo_"$TAR_VER.tar.gz /tmp}#部署deploy_pro(){    cd /tmp/ && tar -zxf pro_demo_"$TAR_VER".tar.gz    rm -f /var/www/html/demo    ln -s /tmp/pro_demo_"$TAR_VER" /var/www/html/demo}#测试test_pro(){    echo 'test ok'}#回滚,列出所有打包好的代码rollback_list(){    ls -l /tmp/*.tar.gz}#删除软连接,重新建立软连接rollback_pro(){    rm -f /var/www/html/demo        ln -s /tmp/$1 /var/www/html/demo}#执行程序main(){    case $1 in        deploy)            git_pro            config_pro            tar_pro            scp_pro            deploy_pro            test_pro            ;;        rollback-list)            rollback_list            ;;        rollback-pro)            rollback_pro $2            ;;        *)            usage:        esac}main $1 $2
原创粉丝点击