自动化部署的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
阅读全文
0 0
- 自动化部署的shell脚本
- 自动化部署服务shell脚本的应用
- Shell脚本-自动化部署WEB
- linux centos shell脚本自动化部署jdk
- bash shell脚本实现android自动化测试部署与运行
- kettle文件自动化部署(shell脚本执行)
- shell的tomcat部署脚本
- 搭建通用的自动化部署脚本
- 自动化搭建redis集群的shell脚本
- 自动化部署脚本
- 自动化部署脚本
- jenkins自动化部署脚本
- tomcat自动化部署脚本
- 自动化部署脚本详解
- hbase自动化部署脚本
- 自动化部署脚本
- 软件自动化部署脚本
- shell 脚本自动化
- 10分钟快速了解MySQL事务与锁
- VCA824调试的若干问题
- [安全]基础知识_汇编(字节序说明+masm基础)
- View的事件分发机制
- java gcc博客系列
- 自动化部署的shell脚本
- java基础教程:常用对象之String(21)
- 使用JMeter的HTTP代理服务器录制app脚本
- Android笔记(4)TextView/Button/ImageView的圆角矩形/圆形控件
- mysql null的注意情况
- 互联网架构为什么要做服务化?(微服务)
- HiveSQL查询优化
- Android notification
- 关于EXP-00106: 数据库链接口令无效 问题处理