一、自动化部署git项目#!/bin/bash # 清除项目进程和历史文件pkill -f start.pysleep 1cd /root/automation |rm -rf testProduce/ # 获取项目最新git代码(前提服务器配置好git账户)git clone git@dev.test.com:test_code/testProduce.git # 启动项目cd testProduce/nohup /usr/python/bin/python3 start.py &sleep 3 # 检查是否启动成功pinfo=`pgrep -af start.py`if [ -n $pinfo ]then echo \”Successfully!!!\”else echo \”Failed!!!\”fi二、自动化更新git项目#!/bin/bash # 切换至项目路径cd /root/automation # 检查项目是否有更新gitinfo=`git pull`if [[ \”${gitinfo}\” == \”Already up-to-date.\” ]]then echo \”Already up-to-date.\”else # 重启项目 pkill -f start.py sleep 1 nohup /usr/python/bin/python3 start.py & sleep 3 # 检查是否启动成功 pinfo=`pgrep -af start.py` if [ -n $pinfo ] then echo \”Successfully!!!\” else echo \”Failed!!!\” fi三、自动化部署已有项目#!/bin/bash # 设置源服务器信息username=\”root\”password=\”root\”host=\”10.22.33.44\”dir=\”/usr/local/app\” # 备份当前项目(以备回滚)echo \”Saving testProduce…\”now=`date +%Y%m%d%H%M%S`cd $dir | mkdir -p bak/$nowtar -czvf testProduce.tar.gz testProduce/ testProduce-web/mv testProduce.tar.gz bak/$now/testProduce.tar.gz # 拷贝项目更新包echo \”Copying testProduce…\”/usr/bin/expect<<EOF set timeout 10 spawn scp -r $username@$host:$dir/testProduce-web/ $dir expect \”*password:\” send \”$password\\r\” expect eof spawn scp -r $username@$host:$dir/testProduce/lib $dir/testProduce/ expect \”*password:\” send \”$password\\r\” expect eof spawn scp $username@$host:$dir/testProduce/testProduce.jar $dir/testProduce/ expect \”*password:\” send \”$password\\r\” expect eof #interactEOF # 重启项目echo \”Restarting testProduce…\”sh testProduce/restart.shsleep 8 # 检查是否启动成功pinfo=`pgrep -af testProduce.jar`if [ -n $pinfo ]then echo \”Successfully!!!\”else echo \”Failed!!!\”fi :<<COMMENTBLOCK pkill -f testProduce.jarCOMMENTBLOCK四、自动化回滚项目#!/bin/bash # 清除当前项目echo \”Clear…\”rm -rf testProduce* |cd bak # 检查是否指定回滚版本(默认回滚上个版本,按日期排序,所以此路径不能有其他文件)if [ -z $1 ]then vs=`ls -l |sort -r |awk \’NR==2 {print $NF}\’`else vs=$1fi # 回滚项目echo \”Reset>>> $vs\”cd $vs |cp testProduce.tar.gz ../../tar -zxvf testProduce.tar.gz |rm -f testProduce.tar.gz # 重启项目echo \”Restarting testProduce…\”sh testProduce/restart.shsleep 8 # 检查是否启动成功pinfo=`pgrep -af testProduce.jar`if [ -n $pinfo ]then echo \”Successfully!!!\”else echo \”Failed!!!\”fi


常见问题
相关文章
猜你喜欢
- Linux 常用的文件基本指令 2023-05-31
- 一文讲解如何获取k8s容器里运行的jar包 2023-05-29
- 阿里云kubernetes查找镜像中jar包的方法(docker查看镜像中的jar) 2023-05-29
- 使用sealos快速搭建K8s集群环境的过程 2023-05-29
- Windows10下VMware Workstation Pro 16安装保姆级教程 2023-05-29
- Linux下定时自动备份Docker中所有SqlServer数据库的脚本 2023-05-29
- pod污点taint 与容忍度tolerations详解 2023-05-29
- 使用Docker部署openGauss国产数据库的操作方法 2023-05-29
- pod调度将 Pod 指派给节点 2023-05-29
- cordon节点drain驱逐节点delete节点详解 2023-05-29